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)
posted @ 2018-03-15 22:01  laosun0204  阅读(139)  评论(0编辑  收藏  举报