我正在尝试使用 RSA 解密字符串。它在 iPhone 上用 C# 加密,我有私钥。这似乎是一个愚蠢的问题,但我看到的所有示例都显示生成私钥。我有私钥(它是十六进制的字节 [])。它使用 PKCS#1 填充。我不知道该怎么做的部分是使用我已经拥有的私钥创建一个 java.security.Key 对象。
我是否需要让他们分两部分给我私钥……模数和指数?
提前致谢。
我正在尝试使用 RSA 解密字符串。它在 iPhone 上用 C# 加密,我有私钥。这似乎是一个愚蠢的问题,但我看到的所有示例都显示生成私钥。我有私钥(它是十六进制的字节 [])。它使用 PKCS#1 填充。我不知道该怎么做的部分是使用我已经拥有的私钥创建一个 java.security.Key 对象。
我是否需要让他们分两部分给我私钥……模数和指数?
提前致谢。
您需要通过 RSAPrivateKeySpec。这是一个示例(基于此):
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);