Skip to content

AES 对称加密、解密工具类

一、简介

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个方法:
  1. 默认公钥加密
  2. 自定义公钥加密

公钥加密

  • 私钥解密2个方法:
  1. 默认私钥解密
  2. 自定义私钥解密

私钥解密

- 2.3 私钥加密、公钥解密

  • 私钥加密2个方法:
  1. 默认私钥加密
  2. 自定义私钥加密

私钥加密

  • 公钥解密2个方法:
  1. 默认公钥解密
  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());
}