java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Springboot配置文件加密

Springboot配置文件加密方式

作者:满小超的代码世界

文章介绍了使用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下

总结

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

您可能感兴趣的文章:
阅读全文