springBoot配置文件密码加密

由于信息安全越来越重视,当别人拿到或者看到你的配置文件。相当于数据库等在裸奔。

所以我们需要对敏感信息比如IP,密码,用户名,关键路径等加密。

我们需要加个jar就可以简单实现配置文件密文启动。

添加jasypt-spring-boot-starter这个jar。它是一个加密工具,会在使用配置信息之前,先拦截获取配置的操作,解密对应的加密配置再使用。有兴趣的可以看看源码。

 <!-- Profile encryption -->
 <dependency>
     <groupId>com.github.ulisesbocchio</groupId>
     <artifactId>jasypt-spring-boot-starter</artifactId>
     <version>2.1.0</version>
 </dependency>

引入后,我们写个工具类来测试,textEncryptor.setPassword("123456");这个相当于加盐。可以自己定一个复杂点的。

package com.xc.luckysheet.utils;

import org.jasypt.util.text.BasicTextEncryptor;

/**
 * jasypt-spring-boot-starter 生成密文的工具代码
 * @author cm
 */
public class EncryptConfigUtil {
    public static void main(String[] args) {

        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
        //加密所需的salt
        textEncryptor.setPassword("123456");
        //要加密的数据(数据库的用户名或密码)
        String username = textEncryptor.encrypt("root");
        String password = textEncryptor.encrypt("123456");
        System.out.println("username:"+username);
        System.out.println("password:"+password);
    }
}

建议在idea配置启动参数VM options 加上  -Djasypt.encryptor.password=123456 

生成的密文:r6YUrfKMAAzzltzmApEYv7lZyILULq== 需要加上ENC() 最终配置如下:

spring:
  redis:
    host: 192.168.10.245
    port: 13556
    password: ENC(r6YJrfKMAAzzltzmEpEYv7lzYINULq6g)
    timeout: 1000ms
    lettuce:
      pool:
        max-active: 8
        max-wait: -1ms
        max-idle: 8
        min-idle: 0
    database: 0

db:
  mysql:
    druid:
      url: jdbc:mysql://192.168.10.132:33037/cn_db?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
      driverClassName: com.mysql.cj.jdbc.Driver
      username: ENC(opGC8sQt5JVH3j4VD5i2Ug)
      password: ENC(r6YUrfKMAAzzltzmApEYv7lZyILULq==)

然后就可以启动了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值