Jasypt加密

1 引包

<dependency>

  <groupId>com.github.ulisesbocchio</groupId>

  <artifactId>jasypt-spring-boot-starter</artifactId>

  <version>3.0.3</version>

</dependency>

2 配置密钥

applicaption.yml文件

# 加解密密钥

jasypt:

 encryptor:

  password: Qzeng

3 获取到数据库密码加密字符串

import org.jasypt.encryption.StringEncryptor;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

 

@RunWith(SpringJUnit4ClassRunner.class)

@SpringBootTest

public class JasyptTest {

  @Autowired

  private StringEncryptor stringEncryptor;

  @Test

  public void testEncrypt() {

    String s1 = "captain@123";

    String encrypt = stringEncryptor.encrypt(s1);

    // TmRoVuF2sNclOAzFZ6Ke6zADk/MicQ0LTBF/5kOCM7kjdl1/AWiWBLMTS0gqajob

    System.out.println("encrypt=" + encrypt);

  }

  @Test

  public void testDecrypt() {

    String s1 = "TmRoVuF2sNclOAzFZ6Ke6zADk/MicQ0LTBF/5kOCM7kjdl1/AWiWBLMTS0gqajob";

    String decrypt = stringEncryptor.decrypt(s1);

    // captain@123

    System.out.println("decrypt=" + decrypt);

  }

}

 

4 配置数据源的密码为加密字符串

配置格式: ENC(加密字符串)

解密说明: jasypt-spring-boot-starter框架会对配置在applicaption.yml文件中: ENC(加密字符串) 加载到内存中时进行自动解密  

applicaption.yml文件

spring:

 datasource:

     druid:

     url: jdbc:mysql://localhost:3306/qzeng?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

     username: captain

     password: ENC(TmRoVuF2sNclOAzFZ6Ke6zADk/MicQ0LTBF/5kOCM7kjdl1/AWiWBLMTS0gqajob)

 

------------------------------------------------------------------------------------------------------------------------------------------------------

    # 加盐cmd命令加解密方式

# 加解密密钥
jasypt:
encryptor:
provider-class-name: org.bouncycastle.jce.provider.BouncyCastleProvider
# 加密的salt
password: cmd
algorithm: PBEWithSHAAnd3-KeyTripleDES-CBC
iv-generator-classname: org.jasypt.iv.NoIvGenerator

备注: apollo中密码加密配置 在执行加解密命令的目录放2个jar包 : jasypt-1.9.3.jar bcprov-jdk15on-1.65.jar

加密密码命令: java -cp jasypt-1.9.3.jar;bcprov-jdk15on-1.65.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="原始密码" password="加密的salt " algorithm=PBEWithSHAAnd3-KeyTripleDES-CBC providerClassName="org.bouncycastle.jce.provider.BouncyCastleProvider"

解密密码命令: java -cp jasypt-1.9.3.jar;bcprov-jdk15on-1.65.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="已加密的密码" password="加密的salt " algorithm=PBEWithSHAAnd3-KeyTripleDES-CBC providerClassName="org.bouncycastle.jce.provider.BouncyCastleProvider"

apollo的密码配置为: ENC(加密密码)



 

posted @   剑阁丶神灯  阅读(535)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示