在Spring Boot微服务使用jasypt加密和解密配置

记录:423

场景:在Spring Boot微服务中,使用jasypt-1.9.3加密和解密配置。

版本:JDK 1.8,Spring Boot 2.6.3,jasypt-1.9.3。

Jasypt开源地址:https://github.com/jasypt/jasypt

Jasypt: (Java Simplified Encryption) is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort and without the need of having deep knowledge on how cryptography works.

1.在pom.xml中引入依赖

<dependency>
  <groupId>org.jasypt</groupId>
  <artifactId>jasypt</artifactId>
  <version>1.9.3</version>
</dependency>

2.Jasypt核心类

2.1Jasypt核心工具类

在使用Jasypt完成加密和解密业务场景时,使用以下工具类就可以胜任。

TextEncryptor接口:org.jasypt.util.text.TextEncryptor。

BasicTextEncryptor实现类:org.jasypt.util.text.BasicTextEncryptor。

AES256TextEncryptor实现类:org.jasypt.util.text.AES256TextEncryptor。

StrongTextEncryptor实现类:org.jasypt.util.text.StrongTextEncryptor。

2.2Jasypt核心类

BasicTextEncryptor、AES256TextEncryptor和StrongTextEncryptor操作的具体实现类是如下:

org.jasypt.encryption.pbe.StandardPBEStringEncryptor

3.Jasypt核心工具类对应算法

BasicTextEncryptor算法:PBEWithMD5AndDES。

AES256TextEncryptor算法:PBEWithHMACSHA512AndAES_256。

StrongTextEncryptor算法:PBEWithMD5AndTripleDES。

4.示例

4.1使用BasicTextEncryptor示例

/**
 * 加密工具类: org.jasypt.util.text.BasicTextEncryptor
 * 加密算法: PBEWithMD5AndDES
 */
public static void f1_BasicTextEncryptor() {
  BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
  System.out.println("当前加密方式: 加密类: BasicTextEncryptor, 加密算法: PBEWithMD5AndDES ");
  // 1.设置秘钥
  String salt = "U3buwRJdQ2023";
  textEncryptor.setPassword(salt);
  // 2.加密
  // 2.1加密内容
  String pd = "Hangzhou20230427";
  System.out.println("加密前:  " + pd);
  // 2.2加密操作
  String pdAfterEncrypt = textEncryptor.encrypt(pd);
  System.out.println("加密后:  " + pdAfterEncrypt);
  // 3.解密操作
  String pdAfterDecrypt = textEncryptor.decrypt(pdAfterEncrypt);
  System.out.println("解密后:  " + pdAfterDecrypt);
}

4.2使用AES256TextEncryptor示例

/**
 * 加密工具类: org.jasypt.util.text.AES256TextEncryptor
 * 加密算法: PBEWithHMACSHA512AndAES_256
 */
public static void f2_AES256TextEncryptor() {
    AES256TextEncryptor textEncryptor = new AES256TextEncryptor();
    System.out.println("当前加密方式: 加密类: AES256TextEncryptor, 加密算法: PBEWithHMACSHA512AndAES_256 ");
    // 1.设置秘钥
    String salt = "U3buwRJdQ2023";
    textEncryptor.setPassword(salt);
    // 2.加密
    // 2.1加密内容
    String pd = "Hangzhou20230427";
    System.out.println("加密前:  " + pd);
    // 2.2加密操作
    String pdAfterEncrypt = textEncryptor.encrypt(pd);
    System.out.println("加密后:  " + pdAfterEncrypt);
    // 3.解密操作
    String pdAfterDecrypt = textEncryptor.decrypt(pdAfterEncrypt);
    System.out.println("解密后:  " + pdAfterDecrypt);
}

4.3使用StrongTextEncryptor示例


/**
 * 加密工具类: org.jasypt.util.text.StrongTextEncryptor
 * 加密算法: PBEWithMD5AndTripleDES
 */
public static void f3_StrongTextEncryptor() {
    StrongTextEncryptor textEncryptor = new StrongTextEncryptor();
    System.out.println("当前加密方式: 加密类: StrongTextEncryptor, 加密算法: PBEWithMD5AndTripleDES ");
    // 1.设置秘钥
    String salt = "U3buwRJdQ2023";
    textEncryptor.setPassword(salt);
    // 2.加密
    // 2.1加密内容
    String pd = "Hangzhou20230427";
    System.out.println("加密前:  " + pd);
    // 2.2加密操作
    String pdAfterEncrypt = textEncryptor.encrypt(pd);
    System.out.println("加密后:  " + pdAfterEncrypt);
    // 3.解密操作
    String pdAfterDecrypt = textEncryptor.decrypt(pdAfterEncrypt);
    System.out.println("解密后:  " + pdAfterDecrypt);
}

以上,感谢。

2023年4月27日

猜你喜欢

转载自blog.csdn.net/zhangbeizhen18/article/details/130416302
今日推荐