假设我有不需要可逆的字符串,假设我用SHA224
它来散列它。
is的哈希值,hello world
长度2f05477fc24bb4faefd86517156dafdecec45b8ad3cf2522a563582b
为 56 字节。
如果我将每两个字符转换为它的数字表示并从中生成一个字节怎么办?
在 Python 中,我会做这样的事情:
shalist = list("2f05477fc24bb4faefd86517156dafdecec45b8ad3cf2522a563582b")
for first_byte,next_byte in zip(shalist[0::2],shalist[1::2]):
chr(ord(first_byte)+ord(next_byte))
结果将是\x98ek\x9d\x95\x96\x96\xc7\xcb\x9ckhf\x9a\xc7\xc9\xc8\x97\x97\x99\x97\xc9gd\x96im\x94
。28 字节。有效地将输入减半。
现在,这样做是否存在更高的哈希冲突风险?