我的应用程序接收公共RSA密钥(n和e)的原始部分,并且需要使用它们来加密密文。我一直在尝试使用BouncyCastle,但我的代码不起作用。尝试创建X509EncodedKeySpec时会出现问题。
任何人都可以帮我解决这个问题吗?这是我的代码:
public static PublicKey getPublicKeyFromString(String key) throws Exception
{
KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM);
EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(Base64Encoder.decode(key));
PublicKey publicKey = keyFactory.generatePublic(publicKeySpec);
return publicKey;
}
我猜真正的问题是n和e是分开的,我不知道如何组合它们。
答案 0 :(得分:3)
为什么不使用新的RSAPublicKeySpec(n,e)?
答案 1 :(得分:-1)
public static PublicKey getPublicKeyFromString(String key) throws Exception
{
BASE64Decoder b64 = new BASE64Decoder();
KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM);
EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(b64.decodeBuffer(key));
PublicKey publicKey = keyFactory.generatePublic(publicKeySpec);
return publicKey;
}