日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python3.7模块之hashlib

發布時間:2023/12/31 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python3.7模块之hashlib 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python的hashlib提供了常見的摘要算法,如MD5,SHA1等等
這里以hashlib舉例:

import hashlibmd=hashlib.md5() md.update("你好") md=md.hexdigest() print(md)

出現以下錯誤:

D:\PycharmProjects\untitled\venv\Scripts\python.exe D:\PycharmProjects\untitled\myself\test2.py Traceback (most recent call last):File "D:\PycharmProjects\untitled\myself\test2.py", line 4, in <module>md.update("你好") TypeError: Unicode-objects must be encoded before hashing

由上圖可知我們是沒有對字符串進行編碼
因為update()的括號里不支持將字符串對象引入,因為哈希在字節上工作,而不在字符或字符串上工作。通俗點說就是,必須要將update括號里的字符串以一種編碼格式(最好是utf-8)進行編碼,轉換為字節(bytes)格式

所以update后面的括號里的字符串必須進行編碼,轉換成字節

hexdigest(…) 以16進制形式返回加密內容
這里以hashlib中md5加密為例:

#三種編碼模式 #1. import hashlib #導入hashlib模塊md=hashlib.md5() #將hashlib.md5的算法賦值給md md.update("你好".encode('utf-8')) #先將你好這個字符串以utf-8編碼轉換成bytes(字節)格式,再存入到md變量中,因為update中只能存入bytes(字節) md=md.hexdigest() #hexdigest(…) 以16進制形式返回加密內容 print(md) #結果:7eca689f0d3389d9dea66ae112e5cfd7#2. import hashlib #導入hashlib模塊md=hashlib.md5() #將hashlib.md5的算法賦值給md md.update(bytes("你好",encoding='utf-8')) #先將你好這個字符串以utf-8編碼轉換成bytes(字節)格式,再存入到md變量中,因為update中只能存入bytes(字節) md=md.hexdigest() ##hexdigest(…) 以16進制形式返回加密內容 print(md) #結果:7eca689f0d3389d9dea66ae112e5cfd7#3. import hashlib #導入hashlib模塊md=hashlib.md5() md.update(b'123abc') #這里是直接將b后面單引號里的字符轉換為字節,b后面只能是數字或字母,不能是中文;因為b單引號里的內容默認是使用ASCII進行編碼,引號中不能出現中文,只能是字符 md=md.hexdigest() #hexdigest(…) 以16進制形式返回加密內容 print(md) #結果:a906449d5769fa7361d7ecc6aa3f6d28

與hexdigest對應的還有:
digest(…) 以字符形式返回加密內容

import hashlib #導入hashlib模塊md=hashlib.md5() md.update("你好".encode('utf-8')) md=md.digest() #digest(…) 以字符形式返回加密內容 print(md) #結果:b'~\xcah\x9f\r3\x89\xd9\xde\xa6j\xe1\x12\xe5\xcf\xd7'

注:字符不同于字符串,字符是指計算機中使用的文字和符號,不是字節,例如1、2、3、a、b、c、A、B、C、~、@、#、¥、%、\、/等等

總結

以上是生活随笔為你收集整理的Python3.7模块之hashlib的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。