[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">
:-: 
***微信掃一掃,關注“python測試開發圈”,了解更多測試教程!***