1
鉴于这种代码:MD5摘要是否跨不同系统一致?
import hashlib
h = hashlib.md5()
h.update(str("foobar").encode('utf-8'))
会在同一消化任何系统上退换吗? 如果不是,有没有办法确保它的确如此?
鉴于这种代码:MD5摘要是否跨不同系统一致?
import hashlib
h = hashlib.md5()
h.update(str("foobar").encode('utf-8'))
会在同一消化任何系统上退换吗? 如果不是,有没有办法确保它的确如此?
是,一个正确实现MD5算法总是会产生相同摘要用于同一系列的任何系统上的字节,因为这正是校验算法,如MD5是。
附注:"foobar"
已经是一个字符串,因此str("foobar")
在上面的代码中完全没有做任何事情。代码的正确版本是:
import hashlib
h = hashlib.md5()
h.update("foobar".encode('utf-8'))
另外,请注意MD5是不是一个安全的加密散列函数。将它用作校验和来防止意外损坏是很好的做法,但它不能用于验证数据是否被有意改变。