在用jmeter测试接口时,有的请求参数会加密,例如,回流接口:http://ip:port/oms-gateway-datareflow-mq/orderReflow/tmsPracticeActionFeedback,它有两个请求参数logistics_interface和data_digest,data_digest是将logistics_interface先用
md5加密后,得到16位的字符串,再将16位字符串进行base64加密。
先在验证java的md5和base64加密结果是否和python加密结果一致
以字符串aaa进行md5和base64加密为例
aaa-java加密的结果:
aaa-python加密:
import hashlib import base64 md5 = hashlib.md5() md5.update('aaa'.encode('utf-8')) print(u"aaa16位md5加密结果:%s"% md5.hexdigest()[8:-8]) print(u"aaa32位md5加密结果:%s"% md5.hexdigest()) print(u"aaa16位md5加密结果再进行base64加密:%s" % base64.b64encode(md5.hexdigest()[8:-8])) print(u"aaa32位md5加密结果再进行base64加密:%s" % base64.b64encode(md5.hexdigest()))
结果:
D:Python27python.exe F:/各种appium开源框架/practice.py aaa16位md5加密结果:4f589f4867dbd57e aaa32位md5加密结果:47bce5c74f589f4867dbd57e9ca9f808 aaa16位md5加密结果再进行base64加密:NGY1ODlmNDg2N2RiZDU3ZQ== aaa32位md5加密结果再进行base64加密:NDdiY2U1Yzc0ZjU4OWY0ODY3ZGJkNTdlOWNhOWY4MDg= Process finished with exit code 0
所以java和python的md5和base64的加密结果都是一致的,以后有接口请求加密,也用python完成加密算法