我试图让 python 从文件中读取一些文本行,然后将它们转换为 md5 哈希值,以便与用户输入的哈希值进行比较。
我正在使用 f = open(file, 'r')
打开并读取文件,一切正常,但当它对单词进行散列时,它不是该单词的正确散列。
所以我需要知道如何删除末尾的空格或 \n
导致其哈希值不正确。
如果这是有道理的。我真的不知道该怎么表达。
最佳答案
我刚刚重写了你的pastebin代码,因为它不好。为什么要递归地写呢? (sys.setrecursionlimit(10000000)
行可能是您做错了什么的线索!)
import md5
hashed = raw_input("Hash:")
with open(raw_input("Wordlist Path: ")) as f:
for line in f:
if md5.new(line.strip()).hexdigest() == hashed:
print(line.strip())
break
else:
print("The hash was not found. Please try a new wordlist.")
raw_input("Press ENTER to close.")
这显然会很慢,因为它每次都会对单词列表中的每个单词进行哈希处理。如果您要在单词列表中查找多个单词,您应该计算(一次)哈希值到单词的映射(反向查找表)并使用它。您可能需要 large-scale key-value storage library如果您的单词列表很大。
关于python - 从文件中读取并删除\n和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8887907/