Springboot配置文件内容加密代码实例

 更新时间:2019年11月08日 11:23:11   作者:donfaquir  
这篇文章主要介绍了Springboot配置文件内容加密代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了Springboot配置文件内容加密代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

使用的是jasypt-spring-boot-starter,具体介绍可以参考  https://gitee.com/yangziyi2017/Jasypt-Spring-Boot

引入依赖

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

创建加密工具类

需要创建一个工具类,用于对明文进行加密,获取密文,然后把密文写入到application.yml这样的配置文件中

package com.hikvision.seclab.common.util.encrypt;
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
/**
* 使用jasypt对配置文件进行加密的工具
* @author: 2019/11/7 16:47
* @since: 0.0.1-SNAPSHOT
* @modified By:
*/
public class JasyptTool {
  public static void main(String[] a){
    StandardPBEStringEncryptor se = new StandardPBEStringEncryptor();
    se.setPassword("xxx");
    String postgres = se.encrypt("abc123");
    System.out.println(postgres);
  }
}

其中有一个设定密码的动作,是设定加密使用的salt,时jasypt组件必选的配置,有些文章中在配置文件中使用jasypt.encryptor.password设置,这样不安全,别人拿到salt,使用jasypt可以直接解密配置文件中的密文。

修改配置文件

获取密文后,修改配置文件

spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql:
spring.datasource.username=pg_name
spring.datasource.password=ENC(t78dKQb1viAT2QKDxxeerdaNm6wyDCJ)
spring.datasource.initialization-mode=always

设置jasypt.encryptor.password

开发环境

可以通过配置jvm启动参数来指定jasypt.encryptor.password的值

生产环境

可以在启动时,设定在启动参数中
java -Dfile.encoding=UTF8 -Djasypt.encryptor.password=e9fbdb2d3b21 -jar -Xmx512m xxxDemo.jar

在docker容器中密文的密码可以设置成环境变量(如:JASYPT_PASSWORD ),上述命令可以修改为:
java -Dfile.encoding=UTF8 -Djasypt.encryptor.password=${JASYPT_PASSWORD} -jar -Xmx512m settlement.jar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 基于FeignClient调用超时的处理方案

    基于FeignClient调用超时的处理方案

    这篇文章主要介绍了基于FeignClient调用超时的处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 入门到精通Java SSO单点登录原理详解

    入门到精通Java SSO单点登录原理详解

    这篇文章主要介绍了入门到精通Java SSO单点登录原理详解,本文主要对SSO单点登录与CAS、OAuth2.0两种授权协议的关系和原理进行详细说明
    2022-09-09
  • 浅谈Spring如何解决循环依赖的问题

    浅谈Spring如何解决循环依赖的问题

    这篇文章主要介绍了浅谈Spring如何解决循环依赖的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Java基础第五篇 实施接口

    Java基础第五篇 实施接口

    在public和private的封装机制,我们实际上同时定义了类和接口,类和接口混合在一起。Java还提供了interface这一语法。这一语法将接口从类的具体定义中剥离出来,构成一个独立的主体,下面文章内容将为大家做详细介绍
    2021-09-09
  • 分布式服务Dubbo+Zookeeper安全认证实例

    分布式服务Dubbo+Zookeeper安全认证实例

    下面小编就为大家分享一篇分布式服务Dubbo+Zookeeper安全认证实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • C# TreeNode案例详解

    C# TreeNode案例详解

    这篇文章主要介绍了C# TreeNode案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • java启动时自定义配置文件路径,自定义log4j2.xml位置方式

    java启动时自定义配置文件路径,自定义log4j2.xml位置方式

    这篇文章主要介绍了java启动时自定义配置文件路径,自定义log4j2.xml位置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Java中的CGLIB动态代理的使用及原理详解

    Java中的CGLIB动态代理的使用及原理详解

    这篇文章主要介绍了Java中的CGLIB动态代理的使用及原理详解,CGLIB是一个功能强大,高性能的代码生成包,它为没有实现接口的类提供代理,为JDK的动态代理提供了很好的补充,需要的朋友可以参考下
    2023-09-09
  • java处理图片背景颜色的方法

    java处理图片背景颜色的方法

    这篇文章主要为大家详细介绍了java处理图片背景颜色的方法,蓝底寸照批量转换为白底,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • springboot~ObjectMapper~dto到entity的自动赋值

    springboot~ObjectMapper~dto到entity的自动赋值

    这篇文章主要介绍了springboot~ObjectMapper~dto到entity的自动赋值,本文分三种情况给大家介绍,需要的朋友可以参考下
    2018-08-08

最新评论