如何使用base-64编码的公钥对字节数组进行RSA加密?
在阅读了有关如何在Java中进行RSA加密的几篇文章之后,发现以下代码片段
public byte[] rsaEncrypt(byte[] data) {
PublicKey pubKey = readKeyFromFile("/public.key");
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, pubKey);
byte[] cipherData = cipher.doFinal(src);
return cipherData;
}
我将公用密钥作为base64编码的字符串(126个字符),如何使用编码的字符串创建“ PublicKey”并将其与Cipher结合使用。
您的base64字符串可能是X509EncodedKeySpec。我只能猜。如果是这样,则应该对字符串进行base64解码以获得byte []
。然后X509EncodedKeySpec
从此构造一个byte []
。然后创建一个RSA实例KeyFactory
,并使用generatePublic()
此KeyFactory 的方法获得一个PublicKey
。然后可以将该公钥传递给Cipher.init()
。
注意:要执行base64解码,请使用apache commons编解码器或Harder base64解码器。
更新:2017年3月8日:最新消息好于现在,Java 8现在包含Base64编码/解码类, java.util.Base64
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句