• 根据签名规则,加密URL


    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)#打印它的变量
  • 相关阅读:
    Deepin安装Python开发环境
    Deepin怎样安装C/C++编译环境更好
    当 tcpdump -w 遇到 Permission denied
    c++中的虚函数
    c++中的new 和delete
    ubuntu没有输入窗口,不能调用输入法
    Ubuntu下升级VisualBox后无法启动 Kernel driver not installed (rc=-1908)
    BCD与GRUB
    adb shell device not found解决
    unsupported number of arguments...的错误
  • 原文地址:https://www.cnblogs.com/irisx/p/9063419.html
Copyright © 2020-2023  润新知