我试图了解彩虹表是如何工作的,并试图在 python 中实现一个,但没有多大成功。
我有一些代码基本上在文本文件中创建一个字典,其中明文字符串映射到它们的哈希值,但无法弄清楚如何调整它以生成减少的彩虹表。
temp = itertools.product("abcdefghijklmnopqrstuvwxyz", repeat=5)
f = open("passwords.txt", "w")
for pw in temp:
p = ''.join(pw)
encode = hashlib.md5(p.encode()).hexdigest()
f.write(p + " " + encode + "\n")
f.close()
我遇到了归约函数并有点理解它们,因此将其定义为:
def reduction(hash):
return hash[:5]
但我不知道从这里做什么:(
如何调整此代码以生成减少的彩虹表?