我正在努力学习更多关于哈希和密码学的知识,并尝试自己的方法,但我似乎被困在了这个问题上。
正在使用的哈希函数是SHA1。
如果我试图确定密码,并且知道密码的最后X字符是:endofpassword#。
我知道哈希的开头是:e921a7cde9e64d612b,而不是散列的其他字符,是否仍然可以确定密码,您将为此使用什么工具?
我相信哈希猫不适合这种攻击,但我可能错了。
发布于 2016-06-23 17:36:56
考虑到我正确地阅读了您的问题,您知道SHA1散列的第一部分,然后是散列后面的纯文本字符。
要成功完成此攻击,您需要编写一个脚本,该脚本将密码猜测为Password1! + randombytes#,并使用SHA1对完整组合进行散列,然后进行检查,以确保猜测的密码的哈希开始等于e921a7cde9e64d612b,并将其添加到潜在密码列表中。
但是,您提到了使用hashcat,但是,由于上面提到的攻击方法的性质,用您选择的语言编写一个简单的脚本来完成攻击会更容易。
简而言之,攻击是可能的,但会更困难,因为您没有完整的散列。
发布于 2016-06-23 18:16:06
知道部分密码会给你建立一个可能的密码列表的良好开端,但这可能是一个庞大的列表,取决于最大长度和字符集。假设这是一个最大的50个字符,你有14个,在未知的范围内,剩下36个字符的熵值。
通过了解散列的一部分,您可以使许多哈希无效,但如果没有整个散列,则需要搜索整个未知范围,以查找与哈希部分匹配的内容。这需要相当长的时间,即使有GPU帮助(像oclHashCat这样的工具),您也在谈论几十年的工作,因为您知道的哈希部分没有加快速度;您需要运行哈希,然后将其与您的片段进行比较。您也不能在找到匹配的匹配时立即停止,因为您无法知道这是唯一的匹配,因此必须耗尽整个空间。
如果只有一次匹配就耗尽了空间,您已经找到了密码。如果有多个结果,则没有找到密码。我认为“是否仍有可能确定密码”的答案是一个坚实的“可能”,因为只有当你检查后,你才会知道是否有一个可能的密码。
https://security.stackexchange.com/questions/127982
复制相似问题