[TOC]
### 使用场景
1. 已存在签名jar包
当签名方法比较复杂时,恰巧开发愿意提供签名jar包时,我们可以通过python代码引用jar包的方式,实现签名。
### python引用jar包示例
>假设jar包名为“utils-0.0.1-SNAPSHOT-jar-with-dependencies.jar”,其中包含的签名工具类为:“com.rfchina.utils.RsaSign”,签名方法为“rsa_sign(String encryData)”,则我们通过以下python代码实现引用jar包的功能。
`jar_utils.py`:
```python
import jpype
def get_rsa_sign(sign_raw):
"""
调用java jar包,对入参进行rsa签名
:param sign_raw:待签名字符串
:return:signature:签名后的加密字符串
"""
# 启动JVM
jvmPath = jpype.getDefaultJVMPath()
# 加载jar包
jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=utils-0.0.1-SNAPSHOT-jar-with-dependencies.jar")
# 指定main class
JDClass = jpype.JClass("com.rfchina.utils.RsaSign")
# 创建类实例对象
jd = JDClass()
# 引用jar包类中的方法 rsa_sign
signature = jd.rsa_sign(sign_raw)
# 关闭JVM
jpype.shutdownJVM()
return signature
if __name__ == '__main__':
sign_raw = "app_id=68613717&app_secret=039b8b6f1544f62dace6fe53e4c380be&platform=1&sign_type=RSA×tamp=1536039464"
print("rsa 签名结果:",get_rsa_sign(sign_raw))
```
<hr style="margin-top:100px">
:-: ![](https://box.kancloud.cn/2ff0bc02ec938fef8b6dd7b7f16ee11d_258x258.jpg)
***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***