from urllib import parse
url=‘http://www.baidu.com?query=python基础教程‘
url_str=parse.quote_plus(url)#URL编码
baidu_url=‘http%3A%2F%2Fwww.baidu.com%3Fquery%3Dpython%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B‘
# print(parse.unquote_plus(baidu_url))#URL解码
import hashlib
def my_md5(s):
???md=hashlib.md5()#实例化md5
???md.update(s.encode())#
???return md.hexdigest()
#vendorId=1697&posCode=pos006&ip=127.0.0.1&posVersion=2.1.1.1.1&mac=;D4-81-D7-CA-20-29;7C-67-A2-9A-06-05;7C-67-A2-9A-06-06;7C-67-A2-9A-06-09;00-00-00-00-00-0000E0
def get_vendorId(req_data):
???data_dic={}
???sub_list=req_data.split(‘&‘)
???for i in sub_list:
???????k,v=i.split(‘=‘)
???????# data_dic.setdefault(k,v)
???????data_dic[k]=v
???return data_dic.get(‘vendorId‘)
def sign(req_date):
???verid=get_vendorId(req_date)#d调用获取vendorId函数
???first=my_md5(verid)
???astr=my_md5(first)
???url_str=parse.quote_plus(req_date)#url编码
???res=my_md5(astr+url_str)
???return res
class Sign(object):
???def __init__(self,req_data):
???????self.req_data=req_data#这写了self的话,在其他的函数里面也可以用self.xxx
???????self.get_verid()
???????self.get_sign()
???def ?md5(self,s):
???????md = hashlib.md5() ?# 实例化md5
???????md.update(s.encode()) ?
???????return md.hexdigest()
???def get_verid(self):
???????data_dic = {}
???????sub_list = self.req_data.split(‘&‘)
???????for i in sub_list:
???????????k, v = i.split(‘=‘)
???????????# data_dic.setdefault(k,v)
???????????data_dic[k] = v
???????self.verid=data_dic.get(‘vendorId‘)
???def get_sign(self):
???????# self.get_verid()
???????frist=self.md5(self.verid)
???????astr=self.md5(frist)
???????url_str=parse.quote_plus(self.req_data)
???????self.sign=self.md5(astr+url_str)
???????return self.sign
print(__name__)
if __name__ == ‘__main__‘:
???s = ‘vendorId=1697&posCode=pos006&ip=127.0.0.1&posVersion=2.1.1.1.1&mac=;D4-81-D7-CA-20-29;7C-67-A2-9A-06-05;7C-67-A2-9A-06-06;7C-67-A2-9A-06-09;00-00-00-00-00-0000E0‘
???abc=Sign(s)
???????# abc.get_sign()#方法
???print(abc.sign)#打印它的变量
根据签名规则,加密URL
原文地址:https://www.cnblogs.com/irisx/p/9063419.html