python RSA模块如何用java解密

1 投票
2 回答
1032 浏览
提问于 2025-04-16 05:11

我在使用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")

撰写回答