Python?hashlib模塊與subprocess模塊使用詳細(xì)介紹
1、什么是哈希hash
hash一類算法,該算法接受傳入的內(nèi)容,經(jīng)過運(yùn)算得到一串hash值
hash值的特點(diǎn):
- 只要傳入的內(nèi)容一樣,得到的hash值必然一樣
- 不能由hash值返解成內(nèi)容
- 不管傳入的內(nèi)容有多大,只要使用的hash算法不變,得到的hash值長度是一定
2、hash的用途
用途1:特點(diǎn)II用于密碼密文傳輸與驗(yàn)證
用途2:特點(diǎn)I、III用于文件完整性校驗(yàn)
3、如何用
import hashlib m=hashlib.md5() m.update('hello'.encode('utf-8')) m.update('world'.encode('utf-8')) res=m.hexdigest() # 'helloworld' print(res) m1=hashlib.md5('he'.encode('utf-8')) m1.update('llo'.encode('utf-8')) m1.update('w'.encode('utf-8')) m1.update('orld'.encode('utf-8')) res=m1.hexdigest()# 'helloworld' print(res)
模擬撞庫
cryptograph='aee949757a2e698417463d47acac93df' import hashlib # 制作密碼字段 passwds=[ 'alex3714', 'alex1313', 'alex94139413', 'alex123456', '123456alex', 'a123lex', ] dic={} for p in passwds: res=hashlib.md5(p.encode('utf-8')) dic[p]=res.hexdigest() # 模擬撞庫得到密碼 for k,v in dic.items(): if v == cryptograph: print('撞庫成功,明文密碼是:%s' %k) break
提升撞庫的成本=>密碼加鹽
import hashlib m=hashlib.md5() m.update('天王'.encode('utf-8')) m.update('alex3714'.encode('utf-8')) m.update('蓋地虎'.encode('utf-8')) print(m.hexdigest())
4、subprocess模塊
subprocess使用當(dāng)前系統(tǒng)默認(rèn)編碼,得到結(jié)果為bytes類型,在windows下需要用gbk解碼
import subprocess obj=subprocess.Popen('echo 123 ; ls / ; ls /root',shell=True, stdout=subprocess.PIPE, #正確的管道 stderr=subprocess.PIPE, #錯(cuò)誤的管道 ) # print(obj) # res=obj.stdout.read() # print(res.decode('utf-8')) err_res=obj.stderr.read() print(err_res.decode('gbk')) # windows下需要用gbk解碼mac、linux用utf-8解碼
到此這篇關(guān)于Python hashlib模塊與subprocess模塊使用詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Python hashlib模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用eval函數(shù)執(zhí)行動(dòng)態(tài)標(biāo)表達(dá)式過程詳解
這篇文章主要介紹了Python使用eval函數(shù)執(zhí)行動(dòng)態(tài)標(biāo)表達(dá)式過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10使用Python去除小數(shù)點(diǎn)后面多余的0問題
這篇文章主要介紹了使用Python去除小數(shù)點(diǎn)后面多余的0問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07

python+openCV對(duì)視頻進(jìn)行截取的實(shí)現(xiàn)

將python字符串轉(zhuǎn)化成長表達(dá)式的函數(shù)eval實(shí)例

tensorflow2.0如何實(shí)現(xiàn)cnn的圖像識(shí)別

使用Python繪制臺(tái)風(fēng)軌跡圖的示例代碼

解決更新tensorflow后應(yīng)用tensorboard報(bào)錯(cuò)的問題

python基礎(chǔ)入門詳解(文件輸入/輸出 內(nèi)建類型 字典操作使用方法)

Python 創(chuàng)建守護(hù)進(jìn)程的示例