SpringBoot 使用jasypt对配置进行加解密

本文介绍了如何在应用程序中避免数据库账户口令明文存储,通过引入jasypt库进行加密和解密操作。详细步骤包括添加依赖、生成密文、配置application.properties以及设置解密密码,确保数据库连接字符串的安全性。
摘要由CSDN通过智能技术生成

需求

应用程序的数据库连接字符串中不能出现数据库账户口令明文

方案

使用jasypt进行加密和解密
加密后的密码如:ENC(密文)
解密时只解密形如ENC(密文)的
1、引入依赖

  <!-- 加密依赖 -->
  <dependency>
     <groupId>com.github.ulisesbocchio</groupId>
       <artifactId>jasypt-spring-boot-starter</artifactId>
       <version>2.1.1</version>
   </dependency>
   <!-- 生成密文用方式二时需要,方式一不需要 -->
   <dependency>
       <groupId>org.jasypt</groupId>
       <artifactId>jasypt</artifactId>
       <version>1.9.3</version>
   </dependency>

2、生成密文
方式一:使用程序生成


public static void main(String[] args) {
    BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
    //加密所需的salt(盐)
    textEncryptor.setPassword("xxxxxx");
    //要加密的数据(数据库的用户名或密码)
    String username = textEncryptor.encrypt("dev");
    String password = textEncryptor.encrypt("aaa");
    String passwordDecrypt = textEncryptor.decrypt(password);
    System.out.println("username: "+username);
    System.out.println("password: "+password);
    System.out.println("passwordDecrypt "+passwordDecrypt);
}

运行结果

username: /HYRSDGZAkIafUithtb1xQ==
password: 7YmScsn9mkgAZmCFYJH1FQ==
passwordDecrypt: aaa

方式二:使用Maven下载好的jar包加密,找到jasypt-1.9.3.jar的位置 输入命令

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="你要加密的密码" password=你的盐 algorithm=PBEWithMD5AndDES

例如

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="aaa" password=xxxxxx algorithm=PBEWithMD5AndDES

在这里插入图片描述
3、在application.properties文件配置。使用ENC()
在这里插入图片描述
同时在启动类配置

//xxxxxx为你的salt值
System.setProperty("jasypt.encryptor.password","xxxxxx");

4、常用的版本
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值