利用Python如何生成hash值示例詳解
一、介紹
如果在Python中需要對用戶輸入的密碼或者其他內(nèi)容進行加密,首選的方法是生成hash值。
在Python中可以利用二個模塊來進行:
- crypt
- hashlib
二、crypt
(一)crypt的主要方法和常量
名稱 | 描述 |
---|---|
md5(…) | 利用md5算法加密 |
sha1(…) | 利用sha1算法加密 |
sha224(…) | 利用sha224算法加密 |
sha256(…) | 利用sha256算法加密 |
sha384(…) | 利用sha384算法加密 |
sha512(…) | 利用sha512算法加密 |
(二)使用說明與示例
使用crypt.crypt(…)進行hash加密的時候,需要提供二個參數(shù):
- 加密內(nèi)容
- salt
如果不特別指定salt,系統(tǒng)就會調(diào)用crypt.mksalt(…)生成一個salt
如果想要以特定的加密算法生成salt就應(yīng)該使用下面的命令:
>>>salt = crypt.mksalt(crypt.METHOD_SHA512) >>> salt '$6$s8Q3eNP6urKZb3AK'
然后再進行數(shù)據(jù)加密:
>>> hash = crypt.crypt("helloworld",salt) >>> hash '$6$s8Q3eNP6urKZb3AK$L0O5cqHRU.1f170bV2KrjF3LkLL54So442TqUIsk.wYtCtOSD4Tyt./fj6W6Y.EzrbNm00grA4yPPhXGya2ie1'
三、hashlib
(一)hashlib的主要方法和常量
名稱 | 描述 |
---|---|
md5(…) | 利用md5算法加密 |
sha1(…) | 利用sha1算法加密 |
sha224(…) | 利用sha224算法加密 |
sha256(…) | 利用sha256算法加密 |
sha384(…) | 利用sha384算法加密 |
sha512(…) | 利用sha512算法加密 |
**(二)Hash對象特有的方法
如果你利用 hashlib 生成了一個Hash對象,那么這個Hash對象會包含如下方法:
名稱 | 描述 |
---|---|
update(arg) | 可以重復(fù)利用指定了特殊加密算法的Hash對象,對 arg 進行加密 |
digest(…) | 以字符形式返回加密內(nèi)容 |
hexdigest(…) | 以16進制形式返回加密內(nèi)容 |
copy(…) | 為了達到重復(fù)利用Hash對象的目的,而克隆Hash對象 |
(三)示例
1、直接使用hashlib方法
>>> hashlib.sha224("Nobody inspects the spammish repetition") <sha224 HASH object @ 0x7f99432c5b28> >>> hashlib.sha224("Nobody inspects the spammish repetition").hexdigest() 'a4337bc45a8fc544c03f52dc550cd6e1e87021bc896588bd79e901e2'
2、直接使用Hash對象中的方法
>>> m = hashlib.md5() >>> m <md5 HASH object @ 0x7f99432c5468> >>> m.update("Nobody inspects") >>> m.digest() '>\xf7)\xcc\xf0\xccV\x07\x9c\xa5F\xd5\x80\x83\xdc\x12' >>> m.update(" the spammish repetition") >>> m.digest() '\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9' >>> m.hexdigest() 'bb649c83dd1ea5c9d9dec9a18df0ffe9'
我是如何 Python 一句話校驗軟件哈希值的
MD5
python -c "import hashlib,sys;print hashlib.md5(open(sys.argv[1],'rb').read()).hexdigest()" Shadowsocks.exe
校驗 下載軟件是否被“中間人動過手腳”
例如:校驗shadowsocks
SHA-1
python -c "import hashlib,sys;print hashlib.sha1(open(sys.argv[1],'rb').read()).hexdigest()" Shadowsocks.exe
SHA-256
python -c "import hashlib,sys;print hashlib.sha256(open(sys.argv[1],'rb').read()).hexdigest()" Shadowsocks.exe
SHA-512
python -c "import hashlib,sys;print hashlib.sha512(open(sys.argv[1],'rb').read()).hexdigest()" Shadowsocks.exe
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
利用python實現(xiàn)PSO算法優(yōu)化二元函數(shù)
這篇文章主要介紹了python實現(xiàn)PSO算法優(yōu)化二元函數(shù)的代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11關(guān)于Python網(wǎng)絡(luò)爬蟲requests庫的介紹
這篇文章主要介紹了關(guān)于Python網(wǎng)絡(luò)爬蟲requests庫,而很多時候這些數(shù)據(jù)存儲在網(wǎng)頁中,手動下載需要花費的時間太長,這時候我們就需要網(wǎng)絡(luò)爬蟲幫助我們自動爬取這些數(shù)據(jù),需要的朋友可以參考下2023-04-04Python中的偏函數(shù)及其廣泛應(yīng)用方式
這篇文章主要介紹了Python中的偏函數(shù)及其廣泛應(yīng)用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06pytorch教程實現(xiàn)mnist手寫數(shù)字識別代碼示例
這篇文章主要講解了pytorch教程中如何實現(xiàn)mnist手寫數(shù)字識別,文中附有詳細的代碼示例,test準確率98%,有需要的朋友可以借鑒參考下2021-09-09Python實現(xiàn)電腦喚醒后自動拍照截屏并發(fā)郵件通知
這篇文章主要為大家詳細介紹了Python如何實現(xiàn)電腦喚醒后自動拍照截屏并發(fā)郵件通知的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2023-01-01