zoukankan      html  css  js  c++  java
  • day9_商家编码加密

    # A、输入数据:
    # 1、请求数据:
    # 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
    # 2:商家编码:
    # 1697
    # B、计算规则:
    # 1、将商家编码(vendorId)1697进行两次MD5加密得到一个字符串 Astr:09B764965CE4E92BED8BD3140E22D5CF
    # 2、将请求数据
    # 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
    # 进行urlDecode处理(编码格式为utf-8)得到一个字符串urlDecodeStr:
    # 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
    # 3、urlDecodeStr + Astr 拼接得到一个待加密的字符串 beforeMD5
    # 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-0000E009B764965CE4E92BED8BD3140E22D5CF
    # 然后将 beforeMD5字符串进行加密得到最终的签名:
    # 6F811B63B11D92BA4A359E6DC98EEE31

    def md5_passwd(st):
    st = str(st)
    import hashlib
    md = hashlib.md5() # 构造一个md5对象
    md.update(st.encode())
    res = md.hexdigest()
    return res

    from urllib import parse
    def sign(data, vendorId): # data就是签名规则.txt文件里的请求数据
    first_md5 = md5_passwd(vendorId)
    second_md5 = md5_passwd(first_md5)
    urlDecodeStr = parse.unquote(data)
    beforeMd5 = urlDecodeStr + second_md5
    res = md5_passwd(beforeMd5)
    print('加密后的签名是:%s'% res)
    return res

    sign('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-',1121)
  • 相关阅读:
    关于动态的添加iview admin路由以及刷新侧边栏按钮
    Qt配置,载入html,Echart, 交互
    junit、hamcrest和eclemma安装、使用
    程序中关于浮点数计算的问题
    洛谷P1164->小A点菜
    一道简单的题目
    P1101:单词方阵
    第一个博客
    php生成条形码
    php 上传音频(MP3、MP4等)文件 获取播放时间长度
  • 原文地址:https://www.cnblogs.com/laosun0204/p/8576664.html
Copyright © 2011-2022 走看看