RSA加密过程中出现很多问号

错误代码事例

 public static byte[] decryptByPublicKey(byte[] data, String key)   throws Exception {

// 对密钥解密

byte[] keyBytes =decryptBASE64(key);

// 取得公钥

X509EncodedKeySpec x509KeySpec =new X509EncodedKeySpec(keyBytes);

KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);

Key publicKey = keyFactory.generatePublic(x509KeySpec);

// 对数据解密

 Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm());

 cipher.init(Cipher.DECRYPT_MODE, publicKey);

return cipher.doFinal(data);

}

图1


正确事例



private static StringRSAC ="RSA/ECB/PKCS1Padding";

 public static byte[] decryptByPublicKey(byte[] data, String key)   throws Exception {

// 对密钥解密

byte[] keyBytes =decryptBASE64(key);

// 取得公钥

 X509EncodedKeySpec x509KeySpec =new X509EncodedKeySpec(keyBytes);

KeyFactorykeyFactory= KeyFactory.getInstance(KEY_ALGORITHM);

Key publicKey =keyFactory.generatePublic(x509KeySpec);

// 对数据解密

Cipher cipher = Cipher.getInstance(RSAC);

cipher.init(Cipher.DECRYPT_MODE, publicKey);

return cipher.doFinal(data);

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。