python RSA模块如何用java解密
我在使用Python的rsa模块(http://stuvel.eu/rsa)生成了私钥和公钥。
我该如何在Java中使用这些私钥和公钥进行加密或解密呢?
2 个回答
0
我猜你是想用Java标准库里的方法和类,来加密和解密你在Python中创建的密钥所对应的信息。解决这个问题的最佳办法是使用Jython,这是一种可以在Java虚拟机上运行的Python实现。
在这种情况下,Jython对你来说非常有用,因为它可以让你访问Java标准库中的所有内容。下面是一个简单的例子,展示了如何使用Jython来调用Java标准库中的包:
from java.lang.Math import *
# use some methods from java.lang.math
hypotenuse = sqrt(a**2 + b**2)
你可以对所有你想用的java.security
的方法和类做同样的事情。
2
谢谢大家。我想我找到了方法。Python的Rsa模块可以生成(n,p,q,e,d)。我可以在Java中使用以下方法。
首先,创建一个RSA的密钥工厂:
KeyFactory s=KeyFactory.getInstance("RSA");
然后,生成私钥:
Key pri_k=s.generatePrivate(new RSAPrivateKeySpec(new BigInteger(n=p*q),new BigInteger(e));
接着,生成公钥:
Key pub_k=s.generatePublic(new RSAPublicKeySpec(new BigInteger(n=p*q),new BigInteger(d));
第二种方法是我在命令行中运行一个.py文件(不是用jython)。比如:
Runtime.getRuntime().exec("python C:\test.py")