如何使用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;
}
Run Code Online (Sandbox Code Playgroud)
我将公钥作为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
| 归档时间: |
|
| 查看次数: |
16602 次 |
| 最近记录: |