Python hashlib模組

來源:互聯網
上載者:User

標籤:長度   md5演算法   模組   enc   也有   進位   失效   class   計算   

hashlib模組

hashlib是一個提供字元加密功能的模組,包含MD5和SHA的密碼編譯演算法,具體支援md5,sha1, sha224, sha256, sha384, sha512等演算法。 該模組在使用者登入認證方面應用廣泛,對文本加密也很常見。模組調用很簡單,那麼就讓我們一起來看看。。

基本調用:
1 import hashlib2 new_md5 = hashlib.md5()  #建立hashlib的md5對象3 new_md5.update(‘字串‘)  #將字串載入到md5對象中,獲得md5演算法加密。4 print(new_md5.hexdigest())  #通過hexdigest()方法,獲得new_md5對象的16進位md5顯示。

簡單來說。就是三步:

1,建立加密對象。2,對字串進行演算法加密。3,獲得16進位顯示

可以建立的密碼編譯演算法有:md5,sha1, sha224, sha256, sha384, sha512

1 例:2     new_md5 = hashlib.md5()   3     new_sha1 = hashlib.sha1()  4     new_sha256 = hashlib.sha256()

 

簡單調用:
1 new_md5 = hashlib.new(‘md5‘,b‘字串‘).hexdigest()

 

注意:向對象中傳入字串時,必須為編碼類別型。可以使用字串前b‘ ‘的方法或使用.encode(‘UTF-8‘)的方法,使字串變為bytes類型。

下面我們將引入一個簡單的實力來說明最常用的MD5演算法在實際中的應用。在引入實力前,讓我們先對MD5的基本特性有個認識。

md5演算法的特點:

  1. 壓縮性:任意長度的資料,算出的MD5值的長度都是固定的。
  2. 容易計算:從原資料計算出的MD5值很容易。不管資料多大,很快就能算出一串MD5字串來。
  3. 抗修改性:對原資料進行任何改動,哪怕修改任何一個位元組,產生的MD5值也有會很大的區別。
  4. 強抗碰撞:已知原資料和MD5,想找到一個具有相同MD5值的資料(即偽造資料)是非常困難的。

好啦,那我們已經知道了MD5演算法的特點。那麼問題來了,MD5既然每次產生的值都是固定的。那麼雖然是單向產生不可反推,但是如果通過碰撞方法對字串產生MD5後與MD5值碰撞,是不是就會得到MD5對應的字串了呢?答對了!這樣是可以的,換句話說,如果某使用者資料庫泄露了,拿到了密碼庫中的MD5就能通過碰撞的方法將密碼破解出來。那麼問題又來了,既然這樣,那也沒有什麼用了啊。。非也,讓我們用一個小小的技巧,讓這個碰撞方法失效。這個方法就是“加鹽”,什麼是加鹽呢?

“加鹽”就是對原密碼添加額外的字串,然後再產生MD5值,這樣就沒有辦法進行破解了,除非拿到“加鹽”字串,但碰撞方法也是需要一個一個重新計算MD5值後再進行碰撞對比的,難度也是極其大的。那麼看下面的代碼吧:

例:MD5密碼認證,帶“加鹽”方法

1 import hashlib2 3 yan = ‘!任#意%字^符@‘  #定義加鹽字串4 pwd = input(‘>>>‘)5 6 md5_pwd = hashlib.md5()7 md5_pwd.update((pwd+yan).encode(‘UTF-8‘))  #加鹽8 pwd = md5_pwd.hexdigest()9 #pwd = hashlib.new(‘md5‘,(pwd+yan).encode(‘UTF-8‘)).hexdigest()   #也可以這樣簡寫哦。。一句話搞定。

 

栗子是簡寫的,不過營養在,好吃不難。

Python hashlib模組

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.