Appearance
AES 对称加密、解密工具类
一、简介
- 使用 hutool 提供的 RSA 对称加密、解密类,集成封装成简单的自用工具类。
- 非对称加密、解密,是指使用 公钥和私钥 进行加密和解密的过程。
- 详见文档:https://www.hutool.cn/docs/#/crypto/非对称加密-AsymmetricCrypto
xml
<!-- hutool 依赖 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.0.M3</version>
</dependency>
二、方法封装
- 工具类:com.kg.component.utils.MyRSAUtils.java
- 2.1 公钥和私钥
- 公钥和私钥是对应的,必须同时生成才有效。
- 公钥加密,可以且仅可以使用对应的私钥解密。
- 私钥加密,可以且仅可以使用对应的公钥解密。
生成公、私钥对
- 使用RSA()类生成(必须使用同一个rsa生成一对公私钥才有效)
java
// 生成公钥和私钥
RSA rsa = new RSA();
System.out.println("--- 公钥base64 ---");
System.out.println(rsa.getPublicKeyBase64());
System.out.println("--- 私钥base64 ---");
System.out.println(rsa.getPrivateKeyBase64());
- 2.2 公钥加密、私钥解密
- 公钥加密2个方法:
- 默认公钥加密
- 自定义公钥加密
- 私钥解密2个方法:
- 默认私钥解密
- 自定义私钥解密
- 2.3 私钥加密、公钥解密
- 私钥加密2个方法:
- 默认私钥加密
- 自定义私钥加密
- 公钥解密2个方法:
- 默认公钥解密
- 自定义公钥解密
三、使用举例
java
public static void main(String[] args) {
String str = "abcdtest1234";
// 1.默认公钥加密,默认私钥解密
String enStr = encryptPublic(str);
System.out.println(enStr);
System.out.println(decryptPrivate(enStr));
// 2.默认私钥加密,默认公钥解密
String enStr2 = encryptPrivate(str);
System.out.println(enStr2);
System.out.println(decryptPublic(enStr2));
// 3.生成自定义公钥和私钥对
RSA rsa = new RSA();
System.out.println("--- 公钥base64 ---");
System.out.println(rsa.getPublicKeyBase64());
System.out.println("--- 私钥base64 ---");
System.out.println(rsa.getPrivateKeyBase64());
}