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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

(十九)hashlib模块

發(fā)布時(shí)間:2023/12/10 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (十九)hashlib模块 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

hashlib模塊用于加密相關(guān)的操作,3.x里代替了md5模塊和sha模塊,主要提供?SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法

注意:md5和sha256算法都是單向加密,即明文加密為密文后,密文無(wú)法再解密回明文

適合應(yīng)用場(chǎng)景:用戶(hù)的密碼需要加密后才能入庫(kù)

import hashlib m = hashlib.md5() #使用md5算法,沒(méi)有加鹽;如果是sha256算法:hashlib.sha256() m.update('hello'.encode('utf8')) #對(duì)'hello'加密 print(m.hexdigest()) #打印加密后的密文m1 = hashlib.md5() m1.update('hello'.encode('utf8')) print(m1.hexdigest())
結(jié)果:

5d41402abc4b2a76b9719d911017c592
5d41402abc4b2a76b9719d911017c592

可見(jiàn),通過(guò)這種方式,一個(gè)不定長(zhǎng)的字符串可以加密變?yōu)橐粋€(gè)定長(zhǎng)的密文,而這個(gè)明文和密文永遠(yuǎn)是一一對(duì)應(yīng)的關(guān)系,即'hello'通過(guò)md5加密后的密文一定是5d41402abc4b2a76b9719d911017c592

有人把這種一一對(duì)應(yīng)的關(guān)系收集記錄(特別是常用的字符串),放入一個(gè)數(shù)據(jù)庫(kù),通過(guò)撞庫(kù)就可以解密MD5,比如我們常用的https://www.cmd5.com/

所以有必要對(duì)加密算法中添加自定義key再來(lái)做加密,即加鹽

m = hashlib.md5('nba'.encode('utf8')) #'nba'就是加鹽,沒(méi)有加鹽的時(shí)候hashlib.md5()方法不帶參數(shù) m.update('hello'.encode('utf8')) print(m.hexdigest())
結(jié)果:444d0cc8a2d942f881bc85f5a31eced0

用上面這個(gè)密文結(jié)果去https://www.cmd5.com/解密是無(wú)法得到明文的

?需要注意的是,同一個(gè)hashlib對(duì)象的加密是連續(xù)疊加的:

m = hashlib.md5() m.update('hello'.encode('utf8')) #m對(duì)象先對(duì)'hello'加密 print(m.hexdigest()) #這個(gè)密文是'hello'的 m.update('nick'.encode('utf8')) #m對(duì)象再對(duì)'nick'加密 print(m.hexdigest()) #這個(gè)密文不是'nick'的,而是'hellonick'的m2 = hashlib.md5() m2.update('hellonick'.encode('utf8')) print(m2.hexdigest())
結(jié)果:

5d41402abc4b2a76b9719d911017c592
d29690d65b7fdc3308b016f7a26cde94
d29690d65b7fdc3308b016f7a26cde94

?

轉(zhuǎn)載于:https://www.cnblogs.com/xulan0922/p/10312171.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的(十九)hashlib模块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。