【问题标题】:Are MD5 digests consistent across different systems?不同系统的 MD5 摘要是否一致?
【发布时间】:2017-09-24 07:34:16
【问题描述】:

鉴于此代码:

import hashlib    

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

是否会在任何系统上返回相同的摘要? 如果没有,有没有办法确保它做到了?

【问题讨论】:

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


    【解决方案1】:

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

    附带说明:"foobar" 已经是一个字符串,所以str("foobar") 在上面的代码中什么都不做。正确版本的代码是:

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

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

    【讨论】:

      猜你喜欢
      • 2019-01-21
      • 1970-01-01
      • 2019-03-31
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      相关资源
      最近更新 更多