Springboot配置文件加密方式

 更新时间:2025年10月24日 10:29:15   作者:满小超的代码世界  
文章介绍了使用Jasypt对服务器配置文件进行加密,包括引入依赖、配置密钥、生成密钥、IDEA和Linux启动配置等步骤,解决了版本和JCE安全插件的问题

前面叙述了数据传递过程中的加密,需要使用到aop对result和request进行加密和解密。

现在需要对服务器的中间件进行保护设置,在配置文件中尽量不要暴露出来服务器件的密码账号。

需要对配置文件进行加密处理。

一、jasypt

jasypt是专门加密各种配置文件的依赖包

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

jasypt有多种版本,并且包之间的依赖问题比较多

二、使用步骤

1.引入依赖

添加配置

如下(yml配置):

jasypt:
  encryptor:
    algorithm: PBEWithMD5AndDES		#算法-固定写法一般没人改
    password: 1234qwer
    iv-generator-classname: org.jasypt.iv.NoIvGenerator	#设置初始向量IV生成器的类名

2.生成密钥

使用代码生成密钥

public class JasyptUtil {

    /**
    * 加密方法
    * @param salt 盐值
    * @param targetString 待加密字符串
    * @return 密文
    */
    public static String encrypt(String salt, String targetString) {
        BasicTextEncryptor encryptor = new BasicTextEncryptor();
        encryptor.setPassword(salt);
        return encryptor.encrypt(targetString);
    }

    /**
    * 解密方法
    * @param salt 盐值
    * @param targetString 待解密字符串
    * @return 明文
    */
    public static String decrypt(String salt,String targetString) {
        BasicTextEncryptor encryptor = new BasicTextEncryptor();
        encryptor.setPassword(salt);
        return encryptor.decrypt(targetString);
    }

    public static void main(String[] args) {
        String salt = "1234qwer";
        String password = "xxxxx";
        // 进行加密操作
        String encryptString1 = encrypt(salt, password);
        // 进行解密操作
        String decryptString1 = decrypt(salt, encryptString1);
        // 输出明文和密文
        System.out.println("encryptString1="+encryptString1);
        System.out.println("decryptString1="+decryptString1);
    }
}

使用jar包生成密钥

java -cp D:\repository\org\jasypt\jasypt\1.9.3\jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="xxxxx" password=1234qwer algorithm=PBEWithMD5AndDES

在yml配置文件中修改密钥:

password: ENC(KMMwXkYtccOvU+mMOXXojP7Tif1Ja9fN)

ENC是jaspty中默认的,可以设置配置项自定义设置

3.idea启动添加环境变量

在idea中设置启动项configuration,添加环境变量

4.linux环境启动

nohup java -Djasypt.encrypt.password=1234qwer  -jar xxxxx.jar > nohup.log &

报错

版本问题,解决冲突

如果错误信息是缺少jce安全插件,那么需要下载jce_policy-8的zip包去放入到JDK下的jre/lib/security下

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • JVM自定义类加载器在代码扩展性实践分享

    JVM自定义类加载器在代码扩展性实践分享

    这篇文章主要介绍了JVM自定义类加载器在代码扩展性实践分享,一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载、验证、准备、解析、初始化 、使用和卸载七个阶段,其中验证、准备、解析三个部分统称为连接
    2022-06-06
  • java处理日期的工具类DateUtil

    java处理日期的工具类DateUtil

    这篇文章主要为大家详细介绍了java处理日期的工具类DateUtil,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • SpringMVC使用MultipartResolver实现文件上传

    SpringMVC使用MultipartResolver实现文件上传

    MultipartResolver 用于处理文件上传,当收到请求时 DispatcherServlet 的 checkMultipart() 方法会调用 MultipartResolver 的 isMultipart() 方法判断请求中是否包含文件
    2023-02-02
  • javaWeb中使用Redis缓存实例解析

    javaWeb中使用Redis缓存实例解析

    这篇文章主要介绍了javaWeb中使用Redis缓存实例解析,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Javaweb实现完整个人博客系统流程

    Javaweb实现完整个人博客系统流程

    这篇文章主要介绍了怎样用Java来实现一个完整的个人博客系统,我们通过实操上手的方式可以高效的巩固所学的基础知识,感兴趣的朋友一起来看看吧
    2022-03-03
  • java1.5中访问环境变量

    java1.5中访问环境变量

    这篇文章主要介绍了如何在java1.5中访问环境变量,使用System.getenv()可以访问环境变量
    2014-01-01
  • Mybatis Mapper接口工作原理实例解析

    Mybatis Mapper接口工作原理实例解析

    这篇文章主要介绍了Mybatis Mapper接口工作原理实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Java死锁产生原因及示例

    Java死锁产生原因及示例

    本文主要介绍了Java死锁产生原因及示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Apache Maven3.6.0的下载安装和环境配置(图文教程)

    Apache Maven3.6.0的下载安装和环境配置(图文教程)

    本文主要介绍了Apache Maven3.6.0的下载安装和环境配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • SpringMVC多个文件上传及上传后立即显示图片功能

    SpringMVC多个文件上传及上传后立即显示图片功能

    这篇文章主要介绍了SpringMVC多个文件上传及上传后立即显示图片功能,非常不错,具有参考借鉴价值功能,需要的朋友可以参考下
    2017-10-10

最新评论