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下

总结

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

相关文章

  • MyBatis 和 jeesite多表查询示例详解

    MyBatis 和 jeesite多表查询示例详解

    这篇文章主要介绍了MyBatis 和 jeesite多表查询,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • Java 字节数组(byte[])和整型(int)的相互转换

    Java 字节数组(byte[])和整型(int)的相互转换

    在Java编程中,有时需要将字节类型(byte)转换为整数类型(int),或者反过来转换,本文主要介绍了Java 字节数组(byte[])和整型(int)的相互转换,感兴趣的可以了解一下
    2023-12-12
  • springboot整合TDengine全过程

    springboot整合TDengine全过程

    这篇文章主要介绍了springboot整合TDengine全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Java读取.properties配置文件的几种方式

    Java读取.properties配置文件的几种方式

    这篇文章主要介绍了Java读取.properties配置文件的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java中的这些骚操作你不能不知道!!!

    Java中的这些骚操作你不能不知道!!!

    今天在看python相关的东西,看到各种骚操作,回头想了下Java有没有什么骚操作,整理下面几种,一起看一下吧,希望能给你带来帮助
    2021-07-07
  • Java中\n和\r区别

    Java中\n和\r区别

    本文主要介绍了Java中\n和\r区别。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • SpringBoot整合RabbitMQ示例详解

    SpringBoot整合RabbitMQ示例详解

    这篇文章主要介绍了SpringBoot整合RabbitMQ示例详解,RabbitMQ是一个实现了AMQP高级消息队列协议的消息队列服务,用Erlang语言。是面向消息的中间件,需要的朋友可以参考下
    2023-07-07
  • Java教程各种接口的介绍

    Java教程各种接口的介绍

    Java教程各种接口的介绍,需要的朋友可以参考一下
    2013-02-02
  • java设计模式--三种工厂模式详解

    java设计模式--三种工厂模式详解

    这篇文章主要为大家详细介绍了Java设计模式之工厂模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助
    2021-07-07
  • 在Eclipse中更改maven项目名的方法

    在Eclipse中更改maven项目名的方法

    今天小编就为大家分享一篇关于在Eclipse中更改maven项目名的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03

最新评论