maven打包数据库加密_使⽤Jasypt对SpringBoot配置⽂件加
密
前⾔
在⽇前安全形势越来越严重的情况下,让我意识到在项⽬中存在⼀个我们经常忽略的漏洞,那就是我们的项⽬的配置⽂件中配置信息的安
mysql下载jar包全,尤其是数据库连接的⽤户名和密码的安全。所以这⾥我们就需要对数据库的⽤户名和密码进⾏加密,这也是本⽂的由来。本⽂采⽤
Jasypt对Spring Boot配置⽂件加密的相关⽅法,其实呢,也还有其他⽅案,具体的会在后⾯的相关⽂章中说明。
引⼊jasypt
com.github.ulisesbocchio jasypt-spring-boot-starter 2.0.0
1.⽣成要加密的字符串
1.1 将数据库的⽤户名和密码进⾏加密
@Test public void contextLoads() { BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); //加密所需的salt(盐) textEncryptor.setPassword("1Qaz0oKm"); 输出信息
username:NZmLHOOHX0SEjc285iG9YQ==password:1JByM5wu5o+9H1Ba2o++Pg==2019-06-14 14:55:49.863 INFO 8904 --- [ Thread-3] o.urren
1.2. 或者使⽤Maven下载好的jar包加密Mavenorgjasyptjasypt2.0.0jasypt-2.0.0.jar
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI password=1Qaz0oKm algorithm=PBEWithMD5AndDES input=root
输出信息
----ENVIRONMENT-----------------Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.171-b11----ARGUMENTS-------------------input: roota
拷贝-OUTPUT-下的结果即可
2.配置properties⽂件
将⽣成的加密串配置ENC(加密串)到application.properties中
server: port: 8080spring: datasource: url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=tru
加密⽅式对应的类为BasicTextEncryptor和StrongTextEncryptor
private final StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor(); public BasicTextEncryptor() { ptor.setAlgorithm("PBEW
3.部署时配置salt(盐)值
1. 为了防⽌salt(盐)泄露,反解出密码.可以在项⽬部署的时候使⽤命令传⼊salt(盐)值
java -jar -ptor.password=1Qaz0oKm xxx.jar
2. 或者在服务器的环境变量⾥配置,进⼀步提⾼安全性
打开/etc/profile⽂件vim /etc/profile⽂件末尾插⼊export JASYPT_PASSWORD = G0CvDz7oJn6编译 source /etc/profile运⾏ java -jar -ptor.password=$
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论