MD5示例
如果我使用MD5加密字母test
,我会得到:098f6bcd4621d373cade4e832627b4f6
作为回报。
现在我想加密新结果098f6bcd4621d373cade4e832627b4f6
并再次加密。
这给了我fb469d7ef430b0baf0cab6c436e70375
现在我想再次加密新结果:fb469d7ef430b0baf0cab6c436e70375
,这会给我25ab3b38f7afc116f18fa9821e44d561
如何在循环中继续这样做
答案 0 :(得分:1)
使用sha256的示例,以继续对哈希算法的新结果/结果进行哈希处理。
from hashlib import sha256
# Hashing hello
result = sha256(b"Hello").hexdigest()
while True:
result = sha256(result.encode()).hexdigest()
# Do something here with the result
答案 1 :(得分:0)
cleartext = 'some text that I want to encrypt'
print(cleartext)
while 1: # infinite loop
ciphertext = myEncryptionAlgorithm(cleartext)
print("old:", cleartext, '\n', "new:", ciphertext)
cleartext = ciphertext
答案 2 :(得分:0)
像
这样的东西vals = {};
x = 'a';
while(True):
y = fake_sha(x);
if y in vals: break
vals[y] = x
x = y
print("Duplicate output found at %s, inputs = (%s, %s)" % (y, vals[y], x))
可能工作。
它跟踪字典vals
中的输入/输出对,当发生碰撞时,它会打印生成相同输出的两个键(先前存储在字典中的键和“当前”输入)
所有这一切,这不是测试冲突的最佳方法,并且除了学习体验之外,实际上并不建议实现自己的哈希算法。