python3.x已經把md5 module移除了。要想用md5得用hashlib module,以下是幫助手冊中給的標準調用
import hashlib
m = hashlib.md5()
m.update(b"Nobody inspects the spammish repetition") #參數必須是byte類型,否則報Unicode-objects must be encoded before hashing錯誤
md5value=m.hexdigest()
print(md5value) #bb649c83dd1ea5c9d9dec9a18df0ffe9
其實可簡寫,如下面的md5的例子,hashlib.md5(data),就可以了
但是對中文字符串md5怎麼辦?
中文字符在Python中是以unicode存在的,同一個字符串在不同的編碼體系下有不同的值,所以在hash前要進行編碼,個人建議轉爲gb2312,因爲對比發現,我下載的一個工具算出的md5值是與gb2312編碼後算出的md5值一樣。(!網上md5的工具很多,是不是所有的md5工具都是這樣的,未去考證,有興趣的可以研究一下)
import hashlib
data='我是'
m = hashlib.md5(data.encode(encoding='gb2312'))
print(m.hexdigest())
************************************************************************************************************************************************************************************************
python 2.7下import md5
m = md5.new()
m.update("Nobody inspects the spammish repetition")
md5value=m.hexdigest()
關於python 下的md5用法,注意 update的疊加性(2.x 3.x)
import hashlib h = hashlib.md5() h.update(b"Nobody inspects ") h.update(b"the spammish repetition") md5value=h.hexdigest() print(md5value)