md5模塊(Python內置模塊)和hashlib模塊


轉自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加密方式

[python]  view plain copy print ?
  1. >>> import hashlib  
  2.   
  3. >>> m = hashlib.md5()  
  4.   
  5. >>> m.update("Nobody inspects")  
  6.   
  7. >>> m.update(" the spammish repetition")  
  8.   
  9. >>> m.digest()  
  10.   
  11. '\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'  
  12.   
  13. >>> m.hexdigest()  
  14.   
  15. 'bb649c83dd1ea5c9d9dec9a18df0ffe9'  

 

 

對以上代碼的說明:

1.首先從python直接導入hashlib模塊

2.調用hashlib里的md5()生成一個md5 hash對象

3.生成hash對象后,就可以用update方法對字符串進行md5加密的更新處理

4.繼續調用update方法會在前面加密的基礎上更新加密

5.加密后的二進制結果

6.十六進制結果

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM