欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?hashlib模塊詳情

 更新時間:2021年11月30日 10:33:21   作者:盆友圈的小可愛  
本文,我們來對Python?提供的安全哈希算法的通用接口-hashlib模塊進行學習,文章內(nèi)容具有一定的參考價值,需要的小伙伴可以參考一下

前言:

在互聯(lián)網(wǎng)的時代,我們在網(wǎng)絡(luò)中傳輸過程中都是要經(jīng)過加密的,常見網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)募用芊绞接?code>MD5和RSA算法。當然,加密算法還有很多中按加密、解密方式不同分為:對稱加密、非對稱加密、hash加密。其中MD5算法的基礎(chǔ)是使用的hash算法,針對不同安全的hash安全算法,Python也提一個通用接口hashlib模塊。

1. hashlib 模塊概述

hashlibPython 內(nèi)置用于對安全哈希和消息摘要的通用接口模塊。hashlib 模塊支持提供目前主流hash算法如MD5、SHA-1SHA-2、SHA-256等通用構(gòu)造方法,并且返回帶有同樣接口的hash對象。

1.1hashlib 模塊特點

  • 提供主流的hash算法操作,替代md5模塊和sha模塊
  • 模塊調(diào)用簡單,無需下載安裝
  • 主要應(yīng)用在文本加密場景如用戶登錄認證

1.2hashlib 模塊使用步驟

  • 導(dǎo)入hashlib庫import hashlib
  • 建立加密對象
  • 對字符串進行加密處理
  • 獲取轉(zhuǎn)換成新的N個Bit

2. hashlib 工作原理

hashlib 模塊中加密方式是我們常見的hash算法。hash算法又稱為散列表(hash table),也叫做哈希表。

2.1hash 算法特點

  • 具有唯一確定性,不同字符串加密后都是不一樣的
  • 不可逆性,hash只有加密沒有解密過程
  • 散列碰撞,輸出和輸入值不是一一對應(yīng)關(guān)系

2.2hash 構(gòu)造方法

直接定址方法

  • 公式一:hash(key) = key
  • 公式二:hash(key) = a*key+b
  • 我們可以查看到直接定址方法具有線性的特點,因此適用在關(guān)鍵字分布連續(xù)的情況

數(shù)學分析方法

  • 方式:提取關(guān)鍵字中隨機性好的數(shù)字位,將其拼接為哈希地址
  • 適用場景:關(guān)鍵字已知的情況下,對關(guān)鍵字中每一位進行取值情況分析

除留余數(shù)方法

  • 公式hash(key) = key % p
  • 除數(shù)采用取余模運算

2.3hash 算法過程

  • hash 函數(shù)接收到輸入的字符串,首先會先進行預(yù)處理-哈希計算-輸入摘要
  • 預(yù)處理:將字符串進行填充、分割N塊,為hash進行初始化
  • 哈希計算:將預(yù)處理的數(shù)據(jù)完成指定算法生成消息摘要
  • 每指定一種hash算法只會生成固定長度的摘要,長度越長的安全性越高

2.4hash 常用算法

MD5

MD5:message-Digest Algorithm 5 信息-摘要算法5,該算法用于信息完整性進行校驗

  • 計算方式:求余、取余、調(diào)整長度、進行鏈接變量循環(huán)運算求出結(jié)果
  • 用途:主要用于文件校驗

SHA-1

SHA:secure Hash Algorithm 安全散列算法1,是一種密碼散列算法,SHA-1可以生成摘要消息為40位的16進制即160位(20字節(jié))的散列值

  • 用途:TSL、SSL、PGP、SSH等協(xié)議中廣泛使用

3. hashlib 屬性方法

hashlib 模塊相關(guān)屬性

屬性 作用
hashlib.algorithms_guaranteed 保證所有平臺上都支持哈希算法的名稱
hashlib.algorithms_available 保證平臺上運行的Python解釋器上可用的hash算法的名稱

hashlib 構(gòu)造對象相關(guān)的屬性

屬性 作用
hash.digest_size 以字節(jié)表示哈希對象的大小
hash.block_size 以字節(jié)表示哈希算法的內(nèi)部塊大小
hash.name 哈希對象的名稱

hashlib 模塊相關(guān)方法目前可以支持主流hash算法。

方法 作用
hashlib.pbkdf2_hmac(hash_name,password,salt,itera,dklen=None) PKCS#5基于密碼的秘鑰派生函數(shù)2,作為HMAC作為偽隨機函數(shù)
hashlib.scrypt(password,*,salt) 基于密碼加密的秘鑰派生函數(shù)
hashlib.md5() md5加密方式
hashlib.sha1 sha1加密方式
hashlib.sha256 sha256加密方式
hashlib.blake2b () blake2b加密方式
hashlib.blake2s black2s加密方式

hashlib 構(gòu)造對象相關(guān)的方法

方法 作用
hash.update(data) 以字節(jié)表示哈希對象
hash.digest() 返回當前已傳給update()方法的數(shù)據(jù)摘要
hash.hexdigest() 以16進制的字符串表示哈希數(shù)據(jù)值
hash.copy() 將hash對象復(fù)制,共享初始數(shù)據(jù)的摘要

4. 實操

我們學習hashlib模塊中對字符串進行hash算法處理,我們來實操一下吧

import hashlib

text_md5 = hashlib.md5()

text_md5.update(bytes("hello juejing",encoding="utf-8"))

print("md5:",text_md5.hexdigest())

text_sha1 = hashlib.sha1()

text_sha1.update(bytes("hello juejing",encoding="utf-8"))

print("sha1:",text_sha1.hexdigest())



text_sha256 = hashlib.sha3_256()

text_sha256.update(bytes("hello juejing",encoding="utf-8"))

print("sha256:",text_sha256.hexdigest())



text_crc32 = hashlib.()

text_sha256.update(bytes("hello juejing",encoding="utf-8"))

print("sha256:",text_sha256.hexdigest())

?? 重要說明

  • 添加自定義key與字符串進行組合加密(加鹽)
  • 以MD5加密為例如下

加鹽寫法一:

text_md5 = hashlib.md5(b"key")

text_md5.update("字符串".encode("utf-8")) 

加鹽寫法二:

key = "字符串"

yan = "字符串2"

text_md5 = hashlib.md5()

text_md5.upadte((key+yan).encode("utf-8"))

5、總結(jié)

本期,我們對hashlib模塊中hash算法特點、hashlib模塊相關(guān)支出算法的方法進行學習和實操。在hash算法中我們常用使用md5/sha1/sha256主要用于文本校驗、用戶登錄認證等數(shù)據(jù)校驗同時,hash算法確保數(shù)據(jù)的完整性,具有不可逆性,同時它會遭遇到暴力碰撞,因此hash長度越長的安全性也越高。

到此這篇關(guān)于Python hashlib模塊興趣的文章就介紹到這了,更多相關(guān)Python hashlib模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用Python做一個嗶站小姐姐詞云跳舞視頻

    用Python做一個嗶站小姐姐詞云跳舞視頻

    這篇文章主要介紹了用Python做一個嗶站小姐姐詞云跳舞視頻, 本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • pandas修改DataFrame列名的實現(xiàn)方法

    pandas修改DataFrame列名的實現(xiàn)方法

    這篇文章主要介紹了pandas修改DataFrame列名的實現(xiàn)方法, 文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02
  • Python 從相對路徑下import的方法

    Python 從相對路徑下import的方法

    今天小編就為大家分享一篇Python 從相對路徑下import的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python操作csv格式文件之csv.DictReader()方法

    python操作csv格式文件之csv.DictReader()方法

    這篇文章主要介紹了python操作csv格式文件之csv.DictReader()方法,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06
  • python爬取酷狗音樂排行榜

    python爬取酷狗音樂排行榜

    這篇文章主要為大家詳細介紹了python爬取酷狗音樂排行榜,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • python消除序列的重復(fù)值并保持順序不變的實例

    python消除序列的重復(fù)值并保持順序不變的實例

    今天小編就為大家分享一篇python消除序列的重復(fù)值并保持順序不變的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 一篇文章帶你搞定Ubuntu中打開Pycharm總是卡頓崩潰

    一篇文章帶你搞定Ubuntu中打開Pycharm總是卡頓崩潰

    這篇文章主要介紹了一篇文章帶你搞定Ubuntu中打開Pycharm總是卡頓崩潰,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • tensorflow創(chuàng)建變量以及根據(jù)名稱查找變量

    tensorflow創(chuàng)建變量以及根據(jù)名稱查找變量

    這篇文章主要為大家詳細介紹了tensorflow創(chuàng)建變量以及根據(jù)名稱查找變量,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python3匿名函數(shù)用法示例

    Python3匿名函數(shù)用法示例

    這篇文章主要介紹了Python3匿名函數(shù)用法,結(jié)合實例形式分析了Python3匿名函數(shù)的概念、功能、使用方法及相關(guān)操作注意事項,代碼中備有較為詳盡的注釋說明便于理解,需要的朋友可以參考下
    2018-07-07
  • pandas merge報錯的解決方案

    pandas merge報錯的解決方案

    這篇文章主要介紹了pandas merge報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論