zoukankan      html  css  js  c++  java
  • 使用jasypt对Spring配置文件进行加密

    一般情况下,Spring项目中数据库等配置文件都写在配置文件中,所以存在一定的风险,可选的做法有:①重写Spring读取配置文件的机制;②在Java代码中配置DataSource;这两种方法都可以实现,第一种方法比较复杂但是更通用,第二种较为简单,但是将配置写死在程序中显然是不恰当的。所以使用一个开源的专门针对Spring配置文件加密的工具jasypt,其原理是重写读取配置文件的机制,在读取到具有加密标识的前缀和后缀时进行解密,具体步骤如下:

    1.添加依赖

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

    2.配置文件application.yml中新增配置

    jasypt:
      encryptor:
      password: 123456 #加密/解密密钥
    

    3.加密

    	public static void main(String[] args) {
    		BasicTextEncryptor encryptor = new BasicTextEncryptor();
    		//需和配置文件中jasypt.encryptor.password的值相同
    		encryptor.setPassword("123456");
    		//加密得到密文
    		System.out.println(encryptor.encrypt("明文")); 
    		//解密
    		System.out.println(encryptor.decrypt("密文"));
    	}
    

    4.将配置文件中的明文替换为上一步得到的密文

    格式如下:
    ENC(密文)
    例如:

    	spring:
    	  datasource:
    	    username: abc
    	    password: ENC(as/qrKIOWhfvweioclz)
    

    5.其他配置

    自定义前缀/后缀:

    		jasypt:
    		  encryptor:
    		    property:
    		      prefix: ""
    		      suffix: ""
    

    jasypt地址:https://github.com/ulisesbocchio/jasypt-spring-boot

  • 相关阅读:
    2.17-2.23第一周总结
    10号总结
    9日总结
    8号总结
    7号寒假总结
    6号
    读后感《程序员的修炼之道:从小工到专家》1
    java第二次动手动脑
    回文判断
    二进制的原码,反码以及补码介绍
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286625.html
Copyright © 2011-2022 走看看