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是不是一個安全的加密散列函數。將它用作校驗和來防止意外損壞是很好的做法,但它不能用於驗證數據是否被有意改變。