鉴于此代码:
import hashlib
h = hashlib.md5()
h.update(str("foobar").encode('utf-8'))
在任何系统上都会返回相同的摘要吗? 如果没有,有没有办法确保它呢?
答案 0 :(得分:1)
是,正确实现的MD5算法将始终为任何系统上的同一系列字节生成相同的摘要,因为这正是MD5等校验和算法的用途。
作为旁注:"foobar"
已经是一个字符串,因此str("foobar")
在上面的代码中什么都不做。正确版本的代码是:
import hashlib
h = hashlib.md5()
h.update("foobar".encode('utf-8'))
另请注意,MD5 不是安全的加密哈希函数。可以将它用作校验和以防止意外损坏,但它不能用于验证数据是否未被故意更改。