MD5摘要在不同系统中是否一致?

时间:2017-09-24 07:34:16

标签: python python-3.x md5 portability hashlib

鉴于此代码:

import hashlib    

h = hashlib.md5()
h.update(str("foobar").encode('utf-8'))

在任何系统上都会返回相同的摘要吗? 如果没有,有没有办法确保它呢?

1 个答案:

答案 0 :(得分:1)

,正确实现的MD5算法将始终为任何系统上的同一系列字节生成相同的摘要,因为这正是MD5等校验和算法的用途。

作为旁注:"foobar"已经是一个字符串,因此str("foobar")在上面的代码中什么都不做。正确版本的代码是:

import hashlib    

h = hashlib.md5()
h.update("foobar".encode('utf-8'))

另请注意,MD5 不是安全的加密哈希函数。可以将它用作校验和以防止意外损坏,但它不能用于验证数据是否未被故意更改。