python通过JPype调用java.jar包中的MD5加密方法,对入参进行MD5加密
import jpype import os.path import requests class MyJPypeClass: """ describe:启动jvm """ @staticmethod def start_api_helper_jvm(): jvm_path = jpype.getDefaultJVMPath() jar_path = os.path.abspath('.') + r"\java_library\ApiHelper.jar" dependency = os.path.abspath('.') + r"\java_library" # 启动jvm if not jpype.isJVMStarted(): jpype.startJVM(jvm_path, "-ea", "-Djava.class.path=%s" % jar_path, "-Djava.ext.dirs=%s" % dependency) # 创建ApiHelper实例 ,并返回 JDClass = jpype.JClass("com.ApiHelper") return JDClass() """ describe:启动jvm,并调用.jar包中的generateEncode_nonStatic方法 terminalId:设备id mid:登录用户mid token:登录用户的token params:需要加密的json格式参数 非string类型 """ @staticmethod def generate_encode(terminalId, mid, token, params): api_helper = MyJPypeClass.start_api_helper_jvm() encode_data = api_helper.generateEncode_nonStatic(terminalId, mid, token, str(params)) return encode_data """ describe:启动jvm,并调用.jar包中的md5_nonStatic方法 params:待使用md5加密的字符串 """ @staticmethod def generate_md5(params): api_helper = MyJPypeClass.start_api_helper_jvm() md5_pwd = api_helper.md5_nonStatic(params.encode("utf-8")) return md5_pwd if __name__ == '__main__': params = {'mobile': '13333333333', 'password': MyJPypeClass.generate_md5('123456')} encode_data = MyJPypeClass.generate_encode("86788602183XXXX", "1462XXX", "3YzivlhfZD5JARN7y4oPlvXF_XXXXXXt", params) print(encode_data) r = requests.post(r"http://XXX.com/login", data={'data': encode_data}) print(str(r.content))
接口入参处理上
最新推荐文章于 2024-01-08 18:03:26 发布