日常写python的时候,有一次涉及到和其他公司的合作项目。我们平常使用的是python编写脚本,而对方公司主要是java为主。遇到python调用签名方式和java调用签名方式结果不一致的情况,故采用了java编写签名jar包,然后通过python调用签名jar包的方式,代码如下:
"""
调用java jar包,对入参进行rsa签名
:param sign_raw:待签名字符串
:return:signature:签名后的加密字符串
"""
# 启动JVM
jvmPath=jpype.getDefaultJVMPath()
# 加载jar包
d=os.path.abspath('..')+'/sign.jar'#对应jar地址
jpype.startJVM(jvmPath,"-ea","-Djava.class.path="+d+"")
# 指定main class
JDClass=jpype.JClass("ChuShouSign.signMain")
# 创建类实例对象
jd=JDClass()
# 引用jar包类中的方法 rsa_sign
signature=jd.signDate(accessSecret,sign_raw)
# 关闭JVM
jpype.shutdownJVM()
网友评论