微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

spring boot 对配置文件加密

配置文件中的数据库账户、密码不能明文展示。否则代码泄露的话,数据库就被人删除跑路了。

首先引入依赖

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

  

编写测试代码

@Test
	public void testDecrypt(){
		BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
		//加密所需的salt(盐)
		textEncryptor.setPassword("bad_boy");
		//要加密的数据(数据库用户名或密码)
		String username = textEncryptor.encrypt("root");
		String password = textEncryptor.encrypt("123456");
		System.out.println("username: " + username);
		System.out.println("password:" + password);
	}

  

将加密后的数据填写到配置文件

spring:
  datasource:
    driver-class-name: com.MysqL.cj.jdbc.Driver
    url: jdbc:MysqL://127.0.0.1:3306/wcscanner?characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true
    username: ENC(JWkISjb1dfh+x1AMNiqr/Q==)
    password: ENC(rMP11CKRnw+s1vM/iTgF1FdS+XylskGiM3fZqMeaOFM=)

  

加密配置

jasypt:
  encryptor:
    password:
    algorithm: PBEWithMD5AndDES

  

运行时增加秘钥变量

--jasypt.encryptor.password=bad_boy

java -jar foo.jar --jasypt.encryptor.password=bad_boy

愉快运行即可。

解密代码

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐