我正在尝试使用RSA解密字符串。它在iPhone上用C#加密,我有私钥。这似乎是一个愚蠢的问题,但我看到的所有示例都显示生成私钥。我有私钥(它是十六进制的byte [])。它使用PKCS#1填充。我无法弄清楚如何做的部分是用我已经拥有的私钥创建一个java.security.Key对象。
我是否需要让他们给我2个部分的私钥...模数和指数?
提前致谢。
答案 0 :(得分:2)
您需要通过RSAPrivateKeySpec。这是一个例子(基于this):
BigInteger n = new BigInteger(nBytes);
BigInteger p = new BigInteger(pBytes);
RSAPrivateKeySpec privateSpec = new RSAPrivateKeySpec(n, p);
KeyFactory kf = KeyFactory.getInstance("RSA");
Key privateKey = kf.generatePrivate(privateSpec);