所以我将哈希值输入到脚本中并将它们与数据字典进行比较,其中字典中的所有内容都被哈希处理,并与用户输入的哈希进行比较以查看是否存在匹配。这工作绝对正常,但是当我尝试一次散列多个散列时,它只会返回已输入的最后一个散列而不是所有输入的散列。我尝试过很多类型的循环,比如嵌套循环,每次我都会收到错误或返回垃圾。我想知道是否还有其他办法可以做到。这是没有任何循环的脚本的主要部分。 提醒或提出一些建议将非常感激。
import hashlib
hash_to_crack = "f25a2fc72690b780b2a14e140ef6a9e0"
hash_to_crack = "d1133275ee2118be63a577af759fc052"
dict_file = "dict.txt"
def main():
with open(dict_file) as fileobj:
for line in fileobj:
line = line.strip()
if hashlib.md5(line).hexdigest() == hash_to_crack:
print "Successfully cracked the hash %s: Password = %s" % (hash_to_crack, line)
return ""
print "Failed to crack the file."
if __name__ == "__main__":
main()
答案 0 :(得分:1)
hash_to_crack = "f25a2fc72690b780b2a14e140ef6a9e0"
hash_to_crack = "d1133275ee2118be63a577af759fc052"
只有一个hash_to_crack
!第二个替换第一个。你可能想要一个列表或元组:
hash_to_crack = ["f25a2fc72690b780b2a14e140ef6a9e0", "d1133275ee2118be63a577af759fc052"]
然后迭代它。