一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python hashlib模塊詳情

Python hashlib模塊詳情

2022-03-10 00:14盆友圈的小可愛 Python

本文,我們來對Python 提供的安全哈希算法的通用接口-hashlib模塊進行學習,文章內容具有一定的參考價值,需要的小伙伴可以參考一下

前言

在互聯網的時代,我們在網絡中傳輸過程中都是要經過加密的,常見網絡數據傳輸的加密方式有MD5和RSA算法。當然,加密算法還有很多中按加密、解密方式不同分為:對稱加密、非對稱加密、hash加密。其中MD5算法的基礎是使用的hash算法,針對不同安全的hash安全算法,Python也提一個通用接口hashlib模塊。

 

1. hashlib 模塊概述

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

1.1hashlib 模塊特點

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

1.2hashlib 模塊使用步驟

  • 導入hashlib庫:import hashlib
  • 建立加密對象
  • 對字符串進行加密處理
  • 獲取轉換成新的N個Bit

Python hashlib模塊詳情

 

2. hashlib 工作原理

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

2.1hash 算法特點

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

2.2hash 構造方法

直接定址方法

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

數學分析方法

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

除留余數方法

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

2.3hash 算法過程

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

Python hashlib模塊詳情

2.4hash 常用算法

MD5

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

  • 計算方式:求余、取余、調整長度、進行鏈接變量循環運算求出結果
  • 用途:主要用于文件校驗

SHA-1

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

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

 

3. hashlib 屬性方法

hashlib 模塊相關屬性

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

hashlib 構造對象相關的屬性

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

hashlib 模塊相關方法目前可以支持主流hash算法。

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

hashlib 構造對象相關的方法

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

 

 

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())

Python hashlib模塊詳情

重要說明

  • 添加自定義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、總結

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

到此這篇關于Python hashlib模塊興趣的文章就介紹到這了,更多相關Python hashlib模塊內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://juejin.cn/post/7026328231854735373

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 四虎免费在线观看视频 | 国产精品成人网红女主播 | 亚洲国产99999在线精品一区 | 日本中文字幕一区二区三区不卡 | 星空无限传媒xk8129 | 亚洲a视频在线观看 | 亚洲免费在线视频 | 2021最新国产成人精品免费 | 日日骑夜夜骑 | 欧美老女人b | 欧洲第一区第二区第三区 | 高贵女王调奴vk | 日韩精品福利视频一区二区三区 | 亚洲国产精品久久网午夜 | 欧美同志gaypronvideos| 精品亚洲麻豆1区2区3区 | 国产精品青青青高清在线 | 2022最新国产在线 | 男人使劲躁女人小视频 | 性free非洲老妇 | 91高清国产经典在线观看 | 国产国拍亚洲精品av | 精品国产福利一区二区在线 | 国产va免费精品高清在线 | 亚洲社区在线 | 天天做天天爽天天谢 | 午夜久 | 日本videohd18| 日韩精品一二三区 | 大学生特黄特色大片免费播放 | 天天快乐高清在线观看 | 欧美男同互吃gay老头 | 无码日韩精品一区二区免费 | 久久囯产精品777蜜桃传媒 | 五月香婷婷 | 美女脱了内裤让男生玩屁股 | 国产成人一区二区三区 | 日韩欧美成末人一区二区三区 | 国产欧美精品一区二区三区 | 亚洲国产综合另类视频 | 好大好猛好深好爽视频 |