赞
踩
在项目中为了防止数据源连接密码直接展示在项目源码中造成的不够优雅问题。可以直接引入jasypt依赖:
- <!--jasypt-->
- <dependency>
- <groupId>com.github.ulisesbocchio</groupId>
- <artifactId>jasypt-spring-boot-starter</artifactId>
- <version>3.0.5</version>
- </dependency>
在配置文件中进行简单配置:
- jasypt:
- encryptor:
- password: ${PASSWORD}
- algorithm: PBEWithHMACSHA512AndAES_256
password:表示要加密字段的盐值。
algorithm:表示要加密的算法。
Jasypt提供了不同强度的文本(String)加密接口,根据强度由弱到强排序依次为:
- BasicTextEncryptor(PBEWithMD5AndDES)
- StrongTextEncryptor (PBEWithMD5AndTripeDES)
- AES256TextEncryptor (PBEWithHMACSHA512AndAES_256)
使用方法均为:先调用setPassword设置密码,再调用encrypt或decrypt做加解密(其他加密器的使用替换BasicTextEncryptor类型即可):
- // PBEWithHMACSHA512AndAES_256
- AES256TextEncryptor textEncryptor = new AES256TextEncryptor();
- textEncryptor.setPassword("盐值");
- String myEncryptedText = textEncryptor.encrypt("真实密码");
- //加密后的结果
- System.out.println(myEncryptedText);
- String plainText = textEncryptor.decrypt(myEncryptedText);
- //解密后的结果
- System.out.println(plainText);
将加密后的密文字符串添加到跑配置文件中:
以数据库的连接配置为例,当然其他的DB连接也是可以支持的。
SpringBoot在启动的时候会根据ENC()来判断是否有加密,如果有会根据配置的盐和算法进行解码。
这样在启动时将盐值以变量的形式注入:
Java -jar PARRWORD=盐值;
在idea 中:
配置启动变量就可以了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。