<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 中 MD5 哈希函數(shù)的實現(xiàn)

          共 2524字,需瀏覽 6分鐘

           ·

          2021-01-12 03:42

          在本文中,我們將學習Python中的MD5加密,并詳細討論其含義和用法。包括以下內(nèi)容:
          • 什么是MD5?

          • Python中的MD5哈希

          • 與md5相關(guān)的功能
            示例1:在Python中打印等效于MD5哈希的字節(jié)
            示例2:在Python中打印MD5哈希的十六進制等效項
            示例3:Python MD5文件校驗

          • 輸出與說明
            示例4:使用Python在MD5中編碼字符串

          • 輸出與說明
            示例5:在Python中計算文件的MD5哈希

          • 輸出與說明

          • 應(yīng)用范圍

          • 優(yōu)點

          • 缺點

          • 結(jié)論

          什么是MD5?
          MD5代表消息摘要算法。它是一個哈希函數(shù),可產(chǎn)生128位哈希值。可用作校驗和驗證數(shù)據(jù)完整性。它適用于非加密目的,例如確定分區(qū)數(shù)據(jù)庫中特定密鑰的分區(qū)。
          Python中的MD5哈希:
          該哈希函數(shù)在Python的hashlib模塊中可用。它以字節(jié)序列作為輸入,并返回128位哈希值作為輸出。散列函數(shù)的主要用途是檢查數(shù)據(jù)完整性,但存在安全性問題。
          與md5相關(guān)的功能:
          • encode():將字符串轉(zhuǎn)換為字節(jié)
          • digest(): 以字節(jié)格式返回編碼數(shù)據(jù)
          • hexdigest():以十六進制格式返回編碼的數(shù)據(jù)
          示例1:在Python中打印等效于MD5哈希的字節(jié)
          import?hashlib?
          ?
          result?=?hashlib.md5(b'Python?Pool')?
          print("Hash?Value?:?",?end?="")
          print(result)
          print("Equivalent?Byte?:?",?end?="")?
          print(result.digest())?
          輸出和說明:

          在此代碼中,我們采用字節(jié)輸入,這是哈希函數(shù)可接受的。然后,我們使用md5哈希函數(shù)對該值進行編碼。最后,我們使用digest()函數(shù)生成了編碼字符串的等效字節(jié)。
          示例2:在Python中打印MD5哈希的十六進制等效項
          import?hashlib?
          ?
          result?=?hashlib.md5('Python?Pool'.encode())?
          print("Hash?Value?:?",?end?="")
          print(result)
          print("Hexadecimal?Equivalent?:?",?end?="")?
          print(result.hexdigest())?
          輸出和說明:

          在這里,我們使用encode()函數(shù)將字符串轉(zhuǎn)換為等效的字節(jié),從而使其被哈希函數(shù)接受。然后,我們使用md5函數(shù)對其進行編碼,最后,使用hexdigest()函數(shù)顯示其十六進制等效項。
          示例3:Python MD5文件校驗
          md5_hash?=?hashlib.md5()
          ?
          file?=?open("test.txt",?"rb")
          content?=?file.read()
          md5_hash.update(content)
          ?
          result?=?md5_hash.hexdigest()
          print(result)
          輸出和說明:

          在此代碼中,調(diào)用hashlib.md5()函數(shù)以創(chuàng)建MD5對象。我們以“ rb”模式打開了一個文件,其中rb代表“ read bytes”。使用read()方法,我們將文件的內(nèi)容讀取到一個變量中。update()方法更新文件內(nèi)容。最后,使用hexdigest()方法,我們將哈希值轉(zhuǎn)換為等效的十六進制值。
          示例4:使用Python在MD5中編碼字符串
          import?hashlib?
          string?=?"pythonpool.com"
          encoded=string.encode()
          result?=?hashlib.md5(encoded)
          print("String?:?",?end?="")
          print(string)
          print("Hash?Value?:?",?end?="")
          print(result)
          print("Hexadecimal?equivalent:?",result.hexdigest())
          輸出和說明:

          在此示例中,我們使用hashlib.md5()函數(shù)將字符串值編碼為哈希值。然后,我們使用hexdigest()方法來獲取生成的哈希值的十六進制等效項。同樣,我們也可以使用digest()方法來獲取與生成的哈希值等效的字節(jié)。
          示例5:在Python中計算文件的MD5哈希
          import?hashlib
          ?
          with?open("sample.txt","rb")?as?f:
          ????bytes?=?f.read()
          ????print("Bytes?read?from?the?file:",bytes)
          ????result?=?hashlib.md5(bytes)
          ????print("Hah?Value:?",result)
          ????print("The?hexadecimal?equivalent:?")
          ????print(result.hexdigest())
          輸出和說明:

          在此代碼中,我們首先創(chuàng)建了一個示例文本文件。然后,我們以字節(jié)為單位讀取該文件的內(nèi)容。我們將字節(jié)轉(zhuǎn)換為哈希值,然后最終看到相同的十六進制等效項。
          應(yīng)用范圍:
          • 在軟件中使用,以確保傳輸?shù)奈募暾麩o缺
          • 通過為在法律發(fā)現(xiàn)過程中交換的每個文檔提供唯一的標識符,它也可用于電子發(fā)現(xiàn)(對可能涉及到訴訟相關(guān)的電子證據(jù)的歸檔和再現(xiàn))
          優(yōu)點
          • 提供一個任意大小的安全輸入(如果使用128位,則可以產(chǎn)生輸出)
          • 原始消息的消息摘要的生成非常簡單
          • 可以執(zhí)行具有任意位數(shù)的消息的消息摘要
          缺點
          • 容易出現(xiàn)哈希沖突的弱點
          • 沒有提供針對這些碰撞攻擊的安全性
          • 與優(yōu)化的SHA算法相比,速度相當慢
          總結(jié)
          在本文中,我們討論了python中的md5哈希函數(shù)。我們看到了相同的各種示例,還了解了它的各種應(yīng)用。

          更多閱讀



          2020 年最佳流行 Python 庫 Top 10


          2020 Python中文社區(qū)熱門文章 Top 10


          Top 10 沙雕又有趣的 GitHub 程序

          特別推薦




          點擊下方閱讀原文加入社區(qū)會員

          瀏覽 37
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  亚洲电影第二页 | 欧美黄在线 | 国产精品久久7777777 | 伊人网站在线观看 | 一级a一级a爱片免费网站 |