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

相关文章

Spring Boot 配置项加密 (https://www.jianshu.com/p/0cd357faf004)

jasypt使用( https://www.cnblogs.com/zz0412/p/jasypt-001.html

原文地址:https://www.cnblogs.com/donfaquir/p/11814127.html

时间: 2024-07-31 22:12:50

Springboot配置文件内容加密的相关文章

对配置文件内的固定内容加密解密

接到一个需求,背景是对公司的各个服务器环境下的配置文件内存有数据库用户名,数据库密码,因为在配置文件中,许多shell脚本都需要调用配置文件中的数据库用户名,密码,所以一直以明文保存,需求内容就是实现对配置文件内的用户名,密码加密,同时加密后要解决shell脚本文件还可以调用到正确的用户名密码,因此还需要解密. 因为是在服务器环境下,所以可以编写java程序,然后将程序打成jar包,通过shell指令调用jar包实现加密与解密. 因为要实现逆向解密,所以没有采用MD5,只能用比较老的DES或者A

SpringBoot配置文件敏感信息加密-jasypt

使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些.打开application.properties或application.yml,比如mysql登陆密码,redis登陆密码以及第三方的密钥等等一览无余,这里介绍一个加解密组件,提高一些属性配置的安全性. jasypt由一个国外大神写的一个springboot下的工具包.Git地址:https://github.com/ulisesbocchio/jasypt-spring-boot 直接上

springboot配置文件抽离--git管理统一配置中心

springboot配置文件抽离,便于服务器读取对应配置文件,避免项目频繁更改配置文件,影响项目的调试与发布 1.创建统一配置中心项目conifg 1)pom配置依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</ver

【转】两步实现超实用的XML存档 易使用,跨平台,防作弊(内容加密 + 防拷贝)

转载自风宇冲Unity3D教程学院 两步实现超实用的XML存档 本套存档的优点:易使用,跨平台,防作弊(内容加密 + 防拷贝) 脚本下载地址 使用方法非常简单:把GameDataManager和XmlSaver两个脚本添加至工程后(1)新建一个GameObject,起名GameDataManager并将GameDataManager脚本拖到上面.(2)在GameDataManager里的GameData类中添加需要储存的数据OK,跨平台防破解防拷贝的存档就搞定了!之后每次存档调用GameData

SpringBoot 配置文件说明

SpringBoot 配置文件说明 默认配置文件:application.yml 或 application.properties 配置文件中属性允许使用占位符例如 ${port:80},运行时使用 Java -jar app.jar --server.port=8081 方式来传递参数 server.port 服务端口,默认为8080 server.port 最大超时时间(分钟),默认为30 server.address 该服务绑定IP地址,启动服务器时如本机不是该IP地址则抛出异常启动失败,

winform 配置文件的加密解密

winform 配置文件的加密解密Visual Studio 命令提示(2010) 窗口下直接输入 :解密aspnet_regiis -pdf connectionStrings 程序文件夹全目录 加密aspnet_regiis -pef connectionStrings 程序文件夹全目录 注意:加密解密过程中必须把配置文件名称改为web.config程序运行一定要改回来App.cong 也可以通过运行CMD切换到命令提示符下,进入到C:\WINDOWS\Microsoft.net\Frame

【日常错误】spring-boot配置文件读取不到

最近在用spring-boot做项目时,遇到自定义的配置文件无法读取到的问题,通过在appcation.java类上定义@PropertySource(value = {"classpath:XXX.properties"},encoding="utf-8"),然后在组件中使用@value等方式读取properties文件配置时,始终都是null值,最后发现是由于项目数据层是使用的EJB访问,然后在ejb-config.xml配置文件里定义了这样一个bean: &l

邮件内容加密方法-如何让你的邮件隐密邮

早期邮件在互联网上都是以明文传输的,很容易就被窃取,后来邮件通讯使用了SSL通道才保证了邮件在链路上的安全,但是邮件在邮件服务器上的安全一直以来都很难解决,即使是今天依然有***可以将用户的邮件从服务器上窃取出来.所以邮件内容的安全目前是邮件安全的重点,既然是内容安全就要使用加密技术了,如果邮件再服务器上是密文存储的那么即使邮件被窃取下来也不用太担心,前提是你使用的加密技术够强.那么目前都有哪些常用的加密技术用于邮件中呢? 第一种:利用对称加密算法加密邮件 对称加密算法是应用较早的加密算法,技术

第四章 SpringBoot配置文件

1.springboot配置文件 SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置. SpringBoot默认会从Resources目录下加载application.properties或application.yml(application.yaml)文件,其中,application.properties文件是键