網(wǎng)站建設與管理代碼搜索百度指數(shù)
目錄
一、簡介
二、用法
步驟一、導入hashlib庫
步驟二、創(chuàng)建哈希對象
步驟三、往哈希對象中傳值
1、可以在創(chuàng)建對象的時候傳值
2、使用updata傳值
步驟四、獲取經(jīng)過哈希對象加密后的值
三、注意事項
1、編碼問題
2、安全性
3、多次傳值
四、總結
一、簡介
hashlib
?是 Python 標準庫中的一個模塊,用于提供多種安全哈希和消息摘要算法。它支持多種哈希算法,如 MD5、SHA-1、SHA-256 等。哈希函數(shù)通常用于數(shù)據(jù)完整性驗證、密碼存儲、數(shù)字簽名等場景。
二、用法
步驟一、導入hashlib庫
import hashlib
步驟二、創(chuàng)建哈希對象
以md5加密方法為例子
# 創(chuàng)建對象
md5_hash = hashlib.md5()
步驟三、往哈希對象中傳值
傳入哈希對象中的值必須是以字節(jié)的形式,所以在傳值時要指定編碼形式,如'utf-8'
1、可以在創(chuàng)建對象的時候傳值
md5_hash = hashlib.md5('456'.encode('utf-8'))
2、使用updata傳值
md5_hash.update('123'.encode('utf-8'))
步驟四、獲取經(jīng)過哈希對象加密后的值
使用hexdigest()方法獲取加密后的值
outputs = md5_hash.hexdigest()
?注:獲取的值是前面?zhèn)魅氲闹灯唇雍蟮目偤?#xff0c;且只要傳入的值不變輸出的值也不會變,演示如下:
import hashlib
# 逐個傳入
md5_hash = hashlib.md5()
md5_hash.update('123'.encode('utf-8'))
md5_hash.update('456'.encode('utf-8'))
output1 = md5_hash.hexdigest()
print(f'output1--{output1}')# 整體傳入
md5_hash1 = hashlib.md5()
md5_hash1.update('123456'.encode('utf-8'))
output2 = md5_hash1.hexdigest()
print(f'output2--{output2}')
?
?
三、注意事項
1、編碼問題
在調用?
update()
?方法時,確保數(shù)據(jù)是以字節(jié)形式傳遞的。通??梢允褂?encode('utf-8')
?將字符串轉換為字節(jié)。
2、安全性
MD5 和 SHA-1 已經(jīng)被證明不夠安全,不建議用于密碼存儲等需要高安全性的場景。推薦使用 SHA-256 或更安全的算法。
3、多次傳值
可以多次調用?
update()
?方法來添加數(shù)據(jù),哈希對象會自動處理數(shù)據(jù)的拼接。
?
四、總結
hashlib
?模塊提供了多種哈希算法,可以用于數(shù)據(jù)完整性驗證、密碼存儲等場景。通過創(chuàng)建哈希對象、更新數(shù)據(jù)和獲取哈希值,你可以輕松地在 Python 中使用這些哈希算法。
?