python中的hashlib模塊使用實(shí)例
1 hashlib模塊的作用:
hashlib是一個(gè)提供字符串加密功能的模塊,包含MD5和SHA的算法,MD5和SHA是摘要算法,摘要算法是什么呢:
也可以稱為哈希算法,離散算法。
通過(guò)一個(gè)函數(shù)將任意長(zhǎng)度的數(shù)據(jù)轉(zhuǎn)化為一個(gè)長(zhǎng)度固定的數(shù)據(jù)串,摘要函數(shù)是一個(gè)單向函數(shù),計(jì)算f(data)很容易,但是通過(guò)digest反推data非常困難,對(duì)data做任意修改,計(jì)算出的摘要完全不相同。
2 以MD5算法為例使用hashlib:
md5算法特點(diǎn):
- 該算法不可逆
- 不同字符串通過(guò)這個(gè)算法計(jì)算得到的密文總不相同
- 相同算法以及相同的字符串獲得的密文結(jié)果總是相同
用法實(shí)例:
import hashlib new_md5=hashlib.md5() new_md5.update('guo') ret=new_md5.hexdigest() # ret 為加密后的字符串
函數(shù)形式實(shí)現(xiàn)加密操作:
import hashlib def get_ret(s): new_md5=hashlib.md5() new_md5.update(s) ret=new_md5.hexdigest() return ret get_ret('guo')
用戶驗(yàn)證登錄:
import hashlib def get_ret(s) new_md5=hashlib.md5() new_md5.update(s) ret = new_md5.hexdigest() return ret username = input('username:') password = input('password:') with open('userinfo') as f: for line in f: usr, pwd = line.strip().split('|') if username == usr and get_ret(password) == pwd: print '登陸成功' break else: print('登錄失敗')
主要的應(yīng)用場(chǎng)景呢,就是我們的密碼的加密和明文的加密,按照一定的約定去形成我們的加密的方式即可,有些時(shí)候?yàn)榱吮苊馓^(guò)于簡(jiǎn)單的加密,我們會(huì)約定一個(gè)私鑰,增加加密的復(fù)雜性。
到此這篇關(guān)于python中的hashlib模塊使用實(shí)例的文章就介紹到這了,更多相關(guān)python的hashlib模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python讀取配置文件-ConfigParser的二次封裝方法
這篇文章主要介紹了Python讀取配置文件-ConfigParser的二次封裝方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Python設(shè)計(jì)模式優(yōu)雅構(gòu)建代碼全面教程示例
Python作為一門(mén)多范式的編程語(yǔ)言,提供了豐富的設(shè)計(jì)模式應(yīng)用場(chǎng)景,在本文中,我們將詳細(xì)介紹 Python 中的各種設(shè)計(jì)模式,包括創(chuàng)建型、結(jié)構(gòu)型和行為型模式2023-11-11Python 輸入一個(gè)數(shù)字判斷成績(jī)分?jǐn)?shù)等級(jí)的方法
今天小編就為大家分享一篇Python 輸入一個(gè)數(shù)字判斷成績(jī)分?jǐn)?shù)等級(jí)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11python爬蟲(chóng)使用scrapy注意事項(xiàng)
在本篇文章里小編給大家整理的是一篇關(guān)于python爬蟲(chóng)使用scrapy注意事項(xiàng)的相關(guān)文章,對(duì)此有興趣的朋友們可以學(xué)習(xí)下。2020-11-11pandas實(shí)戰(zhàn):分析三國(guó)志人物示例實(shí)現(xiàn)
這篇文章主要介紹了pandas實(shí)戰(zhàn):分析三國(guó)志人物示例實(shí)現(xiàn),本文章內(nèi)容詳細(xì),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,需要的朋友可以參考下2023-01-01pycharm 使用心得(六)進(jìn)行簡(jiǎn)單的數(shù)據(jù)庫(kù)管理
功能簡(jiǎn)介:pycharm自帶了一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)插件,可以比較方便的進(jìn)行簡(jiǎn)單的數(shù)據(jù)庫(kù)操作。2014-06-06Python pandas讀取CSV文件的注意事項(xiàng)(適合新手)
這篇文章主要給大家介紹了關(guān)于Python pandas讀取CSV文件的注意事項(xiàng),非常適合新手,csv是我接觸的比較早的一種文件,比較好的是這種文件既能夠以電子表格的形式查看又能夠以文本的形式查看,需要的朋友可以參考下2021-06-06