轉自https://my.oschina.net/duhaizhang/blog/67214
MD5模塊用於產生消息摘要,康用來判斷文件是否相同。
python的md5模塊使用非常簡單,包括以下幾個函數:
- md5.new([arg])
- 返回一個md5對象,如果給出參數,則相當於調用了update(arg)
md5.md5(s)
- 返回字符串s的md5
- md5.updte(arg)
- 用string參數arg更新md5對象。即將要計算arg的消息摘要值。
- md5.digest()
- 返回16字節的摘要,由傳給update的string生成,摘要沒有ascii字符
- md5.hexdigest()
- 以16進制的形式返回摘要,32位
注意:如果m.update(a)之后在 m.update(b),那么就相當於m.update(a+b)
步驟:
01、導入md5模塊
import md5 |
02、得到一個新的md5對象
m = md5.new() |
03、用一個字符串更新md5對象
s = "hahaha" m.update(s) |
04、得到該字符串(這里是s)的摘要
print m.degest() |
05、或者得到16進制的摘要(這個就是我們想要的)
print m.hexdigest() |
這會得到一個字符串,長度為32位
要計算MD5值,不僅可以使用md5模塊,還可以使用hashlib模塊。hashlib是個專門提供hash算法的庫,現在里面包括md5, sha1, sha224, sha256, sha384, sha512,使用非常簡單、方便。md5經常用來做用戶密碼的存儲。而sha1則經常用作數字簽名。
下面主要記錄下其中的md5加密方式
- >>> import hashlib
- >>> m = hashlib.md5()
- >>> m.update("Nobody inspects")
- >>> m.update(" the spammish repetition")
- >>> m.digest()
- '\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'
- >>> m.hexdigest()
- 'bb649c83dd1ea5c9d9dec9a18df0ffe9'
對以上代碼的說明:
1.首先從python直接導入hashlib模塊
2.調用hashlib里的md5()生成一個md5 hash對象
3.生成hash對象后,就可以用update方法對字符串進行md5加密的更新處理
4.繼續調用update方法會在前面加密的基礎上更新加密
5.加密后的二進制結果
6.十六進制結果