<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] ## 加密算法介紹 ### HASH Hash,一般叫“散列”或”哈希”,就是把任意長度的輸入通過散列算法,變換成固定長度的輸出,該輸出就是散列值 ### MD5 **MD5功能** 輸入任意長度的信息,經過處理,輸出為128位的信息(數字指紋); 不同的輸入得到的不同的結果(唯一性); 在計算過程中原文的部分信息是丟失了的,因此數據不可逆 **MD5算法的特點** 1. 壓縮性:任意長度的數據,算出的MD5值的長度都是固定的 2. 容易計算:從原數據計算出MD5值很容易 3. 抗修改性:對原數據進行任何改動,修改一個字節生成的MD5值區別也會很大 4. 強抗碰撞:已知原數據和MD5,想找到一個具有相同MD5值的數據(即偽造數據)是非常困難的。 **MD5用途** 1. 防止被篡改: 2. 防止直接看到明文: 3. 防止抵賴(數字簽名): ### SHA-1 安全哈希算法(Secure Hash Algorithm)主要適用于數字簽名標準(Digital Signature Standard DSS)里面定義的數字簽名算法(Digital Signature Algorithm DSA)。對于長度小于2^64位的消息,SHA1會產生一個160位的消息摘要。當接收到消息的時候,這個消息摘要可以用來驗證數據的完整性。 目前最流行的是加密算法是SHA-256 ### MD5與SHA-1的比較 SHA-1與MD5的最大區別在于其摘要比MD5摘要長32 比特。。但由于SHA-1的循環步驟比MD5多80:64且要處理的緩存大160比特:128比特,SHA-1的運行速度比MD5慢。 ## Python的hashlib模塊 python 3.x里的hashlib模塊代替了2.x里的md5模塊和sha模塊,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 hashlib 加密的字符串類型為二進制編碼,直接加密字符串會報錯誤,需要用encode轉碼 ### 普通加密演示 ``` import hashlib str='my name is luo gang' # ######## md5 ######## >>> md=hashlib.md5() >>> md.update(str.encode('utf-8')) #注意轉碼 >>> md.hexdigest() 'fc732987e2f36bc2406fae8205f08264' # ######## sha1 ######## >>> md=hashlib.sha1() >>> md.update(str.encode('utf-8')) >>> md.hexdigest() 'f14d332e0c9509945bc12e868ec6dcb842aed8e3' # ######## sha256 ######## >>> md=hashlib.sha256() >>> md.update(str.encode('utf-8')) >>> md.hexdigest() 'da2d566a8fc9f3473241ca9a7fac5f7afab41a0f5eda66c9ff7e1b25ab3bb382' ``` ### 高級加密 以上加密算法雖然依然非常厲害,但如果被加密內容簡單,可以通過撞庫可以反解。所以,有必要對加密算法中添加自定義key再來做加密 ``` >>> md=hashlib.md5('def'.encode('utf-8')) >>> md.update(str.encode('utf-8')) >>> md.hexdigest() '73e8e6e5a37e001148942b55dd57a507' ``` ### 注意事項 update(arg) 更新哈希對象有大坑,如果同一個hash對象重復調用該方法,則m.update(a); m.update(b) 等效于 m.update(a+b),并不是替換原數據,切記.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看