java rsa 加密解密算法
时间: 2023-08-30 19:06:50 浏览: 156
RSA.rar_RSA生成 java
RSA加密算法是一种非对称加密算法,它使用公钥进行加密,私钥进行解密。以下是Java实现RSA加密解密的示例代码。
### 生成RSA密钥对
```java
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(1024);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
```
### RSA加密
```java
// 获取公钥
PublicKey publicKey = getPublicKey();
// 加密数据
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encryptedData = cipher.doFinal(data.getBytes());
```
### RSA解密
```java
// 获取私钥
PrivateKey privateKey = getPrivateKey();
// 解密数据
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedData = cipher.doFinal(encryptedData);
```
注意:在进行RSA加密和解密时,需要使用相同的填充模式和加密算法,否则会导致解密失败。常用的填充模式有PKCS1Padding和NoPadding两种。
另外,需要注意的是,在实际应用中,RSA算法的密钥长度应该大于等于2048位,以确保足够的安全性。
阅读全文