开发的同学们都知道,例如项目依赖的信息,数据库信息一般是保存在配置文件中,而且都是明文,因此需要进行加密处理,今天在这里介绍下jasypt集成springboot加密的配置。
方案一:
pom.xml中引入依赖
-
<dependency>
-
<groupId>com.github.ulisesbocchio
</groupId>
-
<artifactId>jasypt-spring-boot-starter
</artifactId>
-
<version>1.16
</version>
-
</dependency>
配置文件中配置jasypt 加解密 密码,配置加密后的密文
-
jasypt:
-
encryptor:
-
password:
test
-
-
# spring security 配置
-
security:
-
oauth2:
-
client:
-
client-id:
ENC(KX34gPBBOaHwpxSXU0+KvA==)
-
client-secret:
ENC(KX34gPBBOaHwpxSXU0+KvA==)
-
scope:
server
测试工具
-
public static void main(String[] args) {
-
//对应配置文件中对应的根密码
-
System.setProperty(
"jasypt.encryptor.password",
"test");
-
StringEncryptor stringEncryptor =
new DefaultLazyEncryptor(
new StandardEnvironment());
-
//加密方法
-
System.
out.println(stringEncryptor.encrypt(
"test"));
-
//解密方法
-
System.
out.println(stringEncryptor.decrypt(stringEncryptor.encrypt(
"test")));
-
//imENTO7M8bLO38LFSIxnzw==
-
System.
out.println(stringEncryptor.decrypt(
"KX34gPBBOaHwpxSXU0+KvA=="));
-
-
}
方案二:
首先,这些都是建立在你的springboot项目是能正常运行的前提下。
第一步:pom文件加入依赖,如图:
这里提供一个版本,
-
<dependency>
-
<groupId>com.github.ulisesbocchio
</groupId>
-
<artifactId>jasypt-spring-boot-starter
</artifactId>
-
<version>2.1.0
</version>
-
</dependency>
第二步:生成密钥
找到你本地maven仓库的jasypt的jar包,在该目录下打开cmd命令窗口,如图:
执行
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="test" password=test algorithm=PBEWithMD5AndDES
其中input为你的明文密码,这里我演示的是test,password为你的私钥,algorithm这个是一个规则,切勿更改!!!。执行后如图:
简单解释一下,这里的OUTPUT就是加密之后的密文(密码)。这里提供一下cmd复制文本的办法(因为我一开始也不会cmd复制):鼠标右键标记然后选中你要复制的内容,就可以复制啦。
第三步:springboot配置文件中添加配置,如图:
这里我用的是application.yml文件,application.properties文件写成这样:jasypt.encryptor.password=test。
说明:上图第一个password对应第二步中ARGUEMENTS中的password,第二个password对应第二步中OUTPUT中的结果,形式一定要加上ENC(you password),如图所示。
第四步:通过命令解密密码
执行命令
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="nhyL4CzSQv/aPxoe7TzpOQ==" password=test algorithm=PBEWithMD5AndDES
结果如下图:
这里到最后就完成了springboot和jasypt的集成啦,是不是非常简单,哈哈。不过有一点要注意哦,千万不要泄露你的配置文件哦(特别是ARGUMENTS里面的password,这个相当于私钥),不然别人可以通过第四步解密你的密码,建议还是把配置文件放在配置中心,类似的有携程的阿波罗
https://github.com/ctripcorp/apollo/wiki/Quick-Start
,百度的disconf
https://github.com/knightliao/disconf
有兴趣的同学可以去研究一下。