hutool rsa加密
时间: 2023-07-09 08:54:39 浏览: 76
Hutool是一个Java工具包,提供了RSA非对称加密算法的实现。使用Hutool进行RSA加密,需要进行以下步骤:
1. 生成RSA密钥对
使用`SecureUtil`类的`generateKeyPair`方法,可以生成RSA密钥对。
```java
// 生成RSA密钥对
KeyPair keyPair = SecureUtil.generateKeyPair("RSA");
PrivateKey privateKey = keyPair.getPrivate();
PublicKey publicKey = keyPair.getPublic();
```
2. 使用公钥进行加密
使用公钥对需要加密的数据进行加密。使用`RSACipher`类的`encrypt`方法进行加密。
```java
// 使用公钥加密数据
byte[] data = "Hello, RSA!".getBytes();
byte[] encrypted = RSACipher.encrypt(publicKey, data, KeyType.PublicKey);
```
3. 使用私钥进行解密
使用私钥对加密后的数据进行解密。使用`RSACipher`类的`decrypt`方法进行解密。
```java
// 使用私钥解密数据
byte[] decrypted = RSACipher.decrypt(privateKey, encrypted, KeyType.PrivateKey);
String result = new String(decrypted);
System.out.println(result);
```
完整的加密解密示例代码如下:
```java
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSACipher;
import cn.hutool.crypto.asymmetric.RSAUtil;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
import cn.hutool.crypto.symmetric.SymmetricCrypto;
import cn.hutool.crypto.symmetric.SymmetricCrypto.Mode;
import cn.hutool.crypto.symmetric.SymmetricCrypto.Padding;
import java.security.KeyPair;
import java.security.PrivateKey;
import java.security.PublicKey;
public class RSATest {
public static void main(String[] args) {
// 生成RSA密钥对
KeyPair keyPair = RSAUtil.generateKeyPair();
PrivateKey privateKey = keyPair.getPrivate();
PublicKey publicKey = keyPair.getPublic();
// 使用公钥加密数据
byte[] data = "Hello, RSA!".getBytes();
byte[] encrypted = RSACipher.encrypt(publicKey, data, KeyType.PublicKey);
// 使用私钥解密数据
byte[] decrypted = RSACipher.decrypt(privateKey, encrypted, KeyType.PrivateKey);
String result = new String(decrypted);
System.out.println(result);
}
}
```