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

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

新聞中心

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

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

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

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

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

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

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

以上是對(duì)于英文進(jìn)行md5加密的,如果要對(duì)中文進(jìn)行加密,發(fā)現(xiàn)按照上面來(lái)寫(xiě)會(huì)報(bào)錯(cuò),原因在于字符轉(zhuǎn)碼問(wèn)題,要如下寫(xiě):

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

此處先將數(shù)據(jù)轉(zhuǎn)換成UTF-8格式的,使用網(wǎng)上工具對(duì)比下加密的結(jié)果,發(fā)現(xiàn)有的md5加密工具并不是使用UTF-8格式加密的。
經(jīng)測(cè)試目前發(fā)現(xiàn)可以轉(zhuǎn)為UTF-8、GBK、GB2312、GB18030,不分大小寫(xiě)(因?yàn)镚BK/GB2312/GB18030均是針對(duì)漢字的編碼,所以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從零開(kāi)始學(xué)編程(黑馬程序員)


網(wǎng)站欄目:創(chuàng)新互聯(lián)Python教程:python怎么使用md5加密解密
本文路徑:http://www.5511xx.com/article/ccecids.html