java rsa 加密解密算法
时间: 2023-07-07 07:31:07 浏览: 134
RSA加密算法是公钥加密算法,它可以用于数据加密和数字签名等领域。RSA算法的安全性基于大数分解的困难性,即对于一个大数进行质因数分解是非常困难的。
以下是Java实现RSA加密解密的代码示例:
### 生成RSA密钥对
```
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
keyPairGen.initialize(1024);
KeyPair keyPair = keyPairGen.generateKeyPair();
PrivateKey privateKey = keyPair.getPrivate();
PublicKey publicKey = keyPair.getPublic();
```
### RSA加密
```
// 获取公钥
PublicKey publicKey = getPublicKey();
// 加密数据
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encryptedData = cipher.doFinal(data.getBytes());
```
### RSA解密
```
// 获取私钥
PrivateKey privateKey = getPrivateKey();
// 解密数据
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedData = cipher.doFinal(encryptedData);
```
注意:在进行RSA加密和解密时,需要使用相同的填充模式和加密算法,否则会导致解密失败。常用的填充模式有PKCS1Padding和NoPadding两种。
阅读全文