日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python怎么使用md5加密解密

python采用hashlib這個標準庫實現(xiàn)MD5加密解密。方法是:1、updata傳數(shù)據(jù);2、利用hexdigest進行16進制轉(zhuǎn)換;

作為一家“創(chuàng)意+整合+營銷”的成都網(wǎng)站建設(shè)機構(gòu),我們在業(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)建站提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計、網(wǎng)站制作、網(wǎng)站設(shè)計、創(chuàng)意表現(xiàn)、網(wǎng)頁制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營銷運營等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營模式與有效的網(wǎng)絡(luò)營銷方法,創(chuàng)造更大的價值。

update(arg)傳入arg對象來更新hash的對象。必須注意的是,該方法只接受byte類型,否則會報錯。這就是要在參數(shù)前添加b來轉(zhuǎn)換類型的原因。

同時要注意,重復(fù)調(diào)用update(arg)方法,是會將傳入的arg參數(shù)進行拼接,而不是覆蓋。也就是說,m.update(a); m.update(b) 等價于m.update(a+b)。

hexdigest()在英語中hex有十六進制的意思,因此該方法是將hash中的數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù),其中只包含十六進制的數(shù)字。

>>> import hashlib
>>> m = hashlib.md5()
>>> m.update(b'123')
>>> m.hexdigest()
'202cb962ac59075b964b07152d234b70'
 
# 或者可以這樣(最常見的寫法,常用于圖片的命名)
>>> hashlib.md5(b'123').hexdigest()
'202cb962ac59075b964b07152d234b70'
 
# 也可以使用hash.new()這個一般方法,hashlib.new(name[, data]),name傳入的是哈希加密算法的名稱,如md5
>>> hashlib.new('md5', b'123').hexdigest()
'202cb962ac59075b964b07152d234b70'

以上是對于英文進行md5加密的,如果要對中文進行加密,發(fā)現(xiàn)按照上面來寫會報錯,原因在于字符轉(zhuǎn)碼問題,要如下寫:

>>> import hashlib
>>> data = '你好'
>>> hashlib.md5(data.encode(encoding='UTF-8')).hexdigest()
'7eca689f0d3389d9dea66ae112e5cfd7'

此處先將數(shù)據(jù)轉(zhuǎn)換成UTF-8格式的,使用網(wǎng)上工具對比下加密的結(jié)果,發(fā)現(xiàn)有的md5加密工具并不是使用UTF-8格式加密的。
經(jīng)測試目前發(fā)現(xiàn)可以轉(zhuǎn)為UTF-8、GBK、GB2312、GB18030,不分大小寫(因為GBK/GB2312/GB18030均是針對漢字的編碼,所以md5加密后結(jié)果一樣)。

例如:

>>> hashlib.md5('你好'.encode(encoding='UTF-8')).hexdigest()
'7eca689f0d3389d9dea66ae112e5cfd7'
>>> hashlib.md5('你好'.encode(encoding='GBK')).hexdigest()
'b94ae3c6d892b29cf48d9bea819b27b9'
>>> hashlib.md5('你好'.encode(encoding='GB2312')).hexdigest()
'b94ae3c6d892b29cf48d9bea819b27b9'
>>> hashlib.md5('你好'.encode(encoding='GB18030')).hexdigest()
'b94ae3c6d892b29cf48d9bea819b27b9'

推薦課程:Python從零開始學(xué)編程(黑馬程序員)


網(wǎng)頁名稱:創(chuàng)新互聯(lián)Python教程:python怎么使用md5加密解密
網(wǎng)頁鏈接:http://www.5511xx.com/article/ccecids.html