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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的md5

發布時間:2024/4/13 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的md5 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python之Md5()使用

Md5()

功能:MD5簽名是一個哈希函數,把任意長度的數據轉換為一個長度固定的數據串(通常用16進制的字符串表示);可用于文件命名
傳入參數:bytes類型
導入:from hashlib import md5
例子1:

import requests from hashlib import md5 url = "http://p3-tt.bytecdn.cn/list/pgc-image/cd7367fde2454137b2874f62dba5c43f" md5_url = md5(url.encode('utf8')).hexdigest() print(md5_url) # 2f7108ac307fd06f5995948f35a70f2fresponse = requests.get(url) md5_content = md5(response.content).hexdigest() print(md5_content) # bf93cde0b6edb50b9e95106c11fdd5ad

例子2:

from hashlib import md5 chinese = '你好呀' md5_chinese = md5(chinese.encode('utf8')).hexdigest() print(md5_chinese) # 4f65fdb33e0f2bd0de6bd1b41fdea968

例子3:

from hashlib import md5 english = 'd8hgeo-2d73k0s2' md5_str = md5(english.encode('utf8')).hexdigest() print(md5_str) # 74335cc0ff464e7006d1530260385a52

原文鏈接:https://blog.csdn.net/weixin_43411585/article/details/88863222

python3中digest()和hexdigest()區別

hashlib是涉及安全散列和消息摘要,提供多個不同的加密算法接口,如SHA1、SHA224、SHA256、SHA384、SHA512、MD5等。

其中

hash.digest() 返回摘要,作為二進制數據字符串值

hash.hexdigest() 返回摘要,作為十六進制數據字符串值

舉個例子

import hashlibmd5 = hashlib.md5() md5.update("a".encode('utf-8')) print(u"digest返回的摘要:%s"% md5.digest()) print(u"hexdigest返回的摘要:%s"% md5.hexdigest())

結果

digest返回的摘要:b'\x0c\xc1u\xb9\xc0\xf1\xb6\xa81\xc3\x99\xe2iw&a' hexdigest返回的摘要:0cc175b9c0f1b6a831c399e269772661

眾配寶接口的加密規則是java實現的,轉換成python

加密規則:1.請求報文 2.替換請求報文中的字符串(replace("\>\s+\<", “><”)) 3.替換后的字符串+key(‘alogalog’)

4.第3步獲取的字符串md5加密 5.將加密后的字符串base64編碼

python實現加密

import hashlib import base64md5 = hashlib.md5()a = "<request><waybills><waybill><receiver><receiverName>張三</receiverName><receiverMobile>13000000000</receiverMobile><receiverZip>431400</receiverZip><receiverProvince>甘肅省</receiverProvince><receiverCity>蘭州市</receiverCity><receiverArea>新洲區</receiverArea><receiverDistrict>李集街道</receiverDistrict><receiverAddress>天水南路222號</receiverAddress></receiver><sender><shopName>天貓超市</shopName><senderName>天貓超市倉庫</senderName><senderPhone>02781739210</senderPhone><senderZip>430208</senderZip><senderProvince>甘肅省</senderProvince><senderCity>蘭州市</senderCity><senderArea>新洲區</senderArea><senderAddress>金口街旭光村菜鳥物流園3號庫</senderAddress></sender><packageInfo><packageCode>test0926001</packageCode><isExpensive>false</isExpensive><weight>2302</weight><volume>7888000</volume><length>290</length><width>170</width><height>160</height><storeOutTime>2017-09-22 08:55:04</storeOutTime></packageInfo><carrier/><sortingInfo><routetype>1</routetype><storeCode>pressureTest</storeCode><deliveryCode>CHENGBANGPEISONG-0001</deliveryCode><deliveryWlbCode>NJCB-001</deliveryWlbCode><cpSimplyCode>C</cpSimplyCode><citySimplyCode>H1</citySimplyCode><routePath>{'nextRouteId':890,'nextRouteType':2,'targerRdcType':2,'targetRdcId':890}</routePath><siteId>4859</siteId><siteCode>1619095</siteCode><carrierCode>CBWL</carrierCode><sortingRequireTimes><requireSendTime>2017-09-24 23:59:00</requireSendTime></sortingRequireTimes><sortingService><expressSerType>108</expressSerType></sortingService></sortingInfo><order><lgOrderSource>WLB</lgOrderSource><storeOrderCode>ydhtest1341573</storeOrderCode><logisticsId>LP00079477100697</logisticsId><mailNo>ddhtest5454253</mailNo><customerCode>SB-ZFB</customerCode><deliveryType>1</deliveryType><distributionType>1</distributionType></order><deliveryNodeInfo><nodeCode>1619095</nodeCode><nodeName>晟邦湖北分撥中心</nodeName><deliveryStatus>MainWaybillAccess</deliveryStatus><firstOwnerRdcCode>1619095</firstOwnerRdcCode></deliveryNodeInfo><uniqueCode>MainWaybillAccesstest09260012017-09-22 09:13:11</uniqueCode><remark>zpb_chuyan_cb</remark></waybill></waybills></request>" b = a.replace("\\>\\s+\\<", "><")+"alogalog"md5.update(b.encode('utf-8')) b = md5.digest() print(u"16位md5加密結果:%s"% b) print(u"16位md5加密結果再進行base64編碼:%s" % base64.b64encode(b).decode('utf-8') )

結果

16位md5加密結果:b'(\xb1\xf9\xd9\xf4\x90\x90jN;\n~\x82)FF' 16位md5加密結果再進行base64編碼:KLH52fSQkGpOOwp+gilGRg==加密結果與java實現的加密結果一致

注意:區分加密是hash.digest() 還是hash.hexdigest(),之前一直用的是hexdigest方法導致加密的結果不正確

總結

以上是生活随笔為你收集整理的python的md5的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。