日常使用过程中,使用明文密码完全没问题,但是到了企业项目中,往往需要进行安全扫描,被安全扫描组扫到后,就必须修改。
有两种思路解决安全扫描问题。
方式一、密码不放在代码里
密码不放在工程代码中,放到配置中心上,比如Spring Cloud Config,比如Nacos,或者apollo上。
一般来说安全扫描都是只扫描代码工程,不会扫描其他配置中心,当然如果有检查配置中心,那只能用第二种方式了。
方式二、使用jasypt加密
使用jasypt加密可以解决这个问题。
首先,pom添加依赖。
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
然后打开jasypt的jar包目录,执行如下命令生成密文。
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="root" password=mysalt-xy algorithm=PBEWithMD5AndDES
执行结果:
重新执行,可以看到每次结果不一样。
input 是要加密的明文
password 是相当于盐
因此密码需要在执行一次 input="密码"
生成后替换,格式ENC(密文)
然后添加盐配置:
jasypt:
encryptor:
password: mysalt-xy
这样就可以轻松加密了。