<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          盤點Python加密解密模塊hashlib的7種加密算法

          共 2878字,需瀏覽 6分鐘

           ·

          2021-04-15 11:15

          點擊上方“Python爬蟲與數據挖掘”,進行關注

          回復“書籍”即可獲贈Python從入門到進階共10本電子書

          潮平兩岸闊,風正一帆懸。

              大家好,我是黃偉。今天給大家介紹hashlib模塊!

          前言

              在程序中我們經常可以看到有很多的加密算法,比如說MD5 sha1等,今天我們就來了解下這下加密算法的吧,在了解之前我們需要知道一個模塊嘛就是hashlib,他就是目前Python一個提供字符加密的模塊,它加密的字符類型為二進制編碼,所以直接加密字符串會報錯。

          import hashlibstring='任性的90后boy'#使用encode進行轉換sha1 = hashlib.sha1()sha1.update(string.encode('utf-8'))res = sha1.hexdigest()print("sha1采用encode轉換加密結果:",res)#使用byte轉換為二進制sha1 = hashlib.sha1()sha1.update(bytes(string,encoding='utf-8'))res = sha1.hexdigest()print("sha1采用byte轉換的結果:",res)

          927403bb22e4221cfb0ae8cd4e44fde7.webp

          可以使用下列這兩種方法任意一種獲取到hashlib中所有的散列算法集合:

          import hashliba=hashlib.algorithms_available b=hashlib.algorithms_guaranteedprint(a)print(b)

          下面我們挑選常用的集中算法來進行講解。


          一、MD5

          MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于確保信息傳輸完整一致。是計算機廣泛使用的雜湊算法之一(又譯摘要算法、哈希算法),主流編程語言普遍已有MD5實現(xiàn)。將數據(如漢字)運算為另一固定長度值,是雜湊算法的基礎原理,MD5的前身有MD2、MD3和MD4。

          MD5算法具有以下特點:

          1、壓縮性:任意長度的數據,算出的MD5值長度都是固定的。

          2、容易計算:從原數據計算出MD5值很容易。

          3、抗修改性:對原數據進行任何改動,哪怕只修改1個字節(jié),所得到的MD5值都有很大區(qū)別。

          4、強抗碰撞:已知原數據和其MD5值,想找到一個具有相同MD5值的數據(即偽造數據)是非常困難的。

          MD5的作用是讓大容量信息在用數字簽名軟件簽署私人密鑰前被"壓縮"成一種保密的格式(就是把一個任意長度的字節(jié)串變換成一定長的十六進制數字串)。MD5是最常見的摘要算法,速度很快,生成結果是固定的128 bit字節(jié),通常用一個32位的16進制字符串表示。

          import hashlibstring='任性的90后boy'md5 = hashlib.md5() md5.update(string.encode('utf-8'))#轉碼,update里的必須是字節(jié)型res = md5.hexdigest() #返回字符型摘要信息print(md5.digest())#返回字節(jié)型的摘要信息print("md5加密結果:",res)


          二、sha1

          安全散列算法,SHA1的結果是160 bit字節(jié),通常用一個40位的16進制字符串表示

          import hashlibstring='任性的90后boy'sha1 = hashlib.sha1()sha1.update(string.encode('utf-8'))res = sha1.hexdigest()print("sha1加密結果:",res)


          三、sha224

          安全散列算法

          import hashlibstring='任性的90后boy'sha224 = hashlib.sha224()sha224.update(string.encode('utf-8'))res = sha224.hexdigest()print("sha224加密結果:",res)


          四、sha256

          安全散列算法

          import hashlibstring='任性的90后boy'sha256 = hashlib.sha256()sha256.update(string.encode('utf-8'))res = sha256.hexdigest()print("sha256加密結果:",res)


          五、sha384

          安全散列算法

          import hashlibstring='任性的90后boy'sha384 = hashlib.sha384()sha384.update(string.encode('utf-8'))res = sha384.hexdigest()print("sha384加密結果:",res)


          六、sha512

          安全散列算法

          import hashlibstring='任性的90后boy'sha512= hashlib.sha512()sha512.update(string.encode('utf-8'))res = sha512.hexdigest()print("sha512加密結果:",res)


          七、高級加密

          以上加密算法雖然依然非常厲害,但時候存在缺陷,即:通過撞庫可以反解。所以,有必要對加密算法中添加自定義key再來做加密。

          md5 = hashlib.md5()md5.update('md5'.encode('utf-8'))res = md5.hexdigest()print("普通加密:",res)md51 = hashlib.md5(b'md512')md51.update('md51'.encode('utf-8'))res = md51.hexdigest()print("采用key加密:",res)


          總結

          好了,今天就跟大家說這么多,主要給大家介紹了md5、sha1、sha224、sha256、sha384、sha512和高級加密等集中算法,簡單介紹了每個算法的特點和使用方法,后續(xù)精彩敬請期待!

          想要學習更多網絡爬蟲知識,請點擊閱讀原文前往爬蟲網站。

          ------------------- End -------------------

          往期精彩文章推薦:

          704fa66e2a7eacbafe55e1f08c64a511.webp

          歡迎大家點贊,留言,轉發(fā),轉載,感謝大家的相伴與支持

          想加入Python學習群請在后臺回復【入群

          萬水千山總是情,點個【在看】行不行

          /今日留言主題/

          隨便說一兩句吧~

          瀏覽 19
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产无码一区二区三区视频 | 性爱视频黄色在线观看 | 精品国精品自拍自在线 | 欧美X X X欧美91 | 老太性HD性老太 |