1.pom文件增加依赖
- <dependency>
- <groupId>com.github.ulisesbocchio</groupId>
- <artifactId>jasypt-spring-boot-starter</artifactId>
- <version>3.0.5</version>
- </dependency>
复制代码 2.修改启动类增加StringEncryptor实现
jasypt密码可以放到配置文件或者启动命令中,与其这样不如直接写到代码里- @Primary
- @Bean("jasyptStringEncryptor")
- public StringEncryptor stringEncryptor() {
- PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
- SimpleStringPBEConfig config = new SimpleStringPBEConfig();
- config.setPassword("xxxx");//这里改成你的密码
- config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256");
- config.setKeyObtentionIterations("1000");
- config.setPoolSize("1");
- config.setProviderName("SunJCE");
- config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
- config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
- config.setStringOutputType("base64");
- encryptor.setConfig(config);
- return encryptor;
- }
复制代码 注意:上面的@Primary 注解必须加上,覆盖默认实现。
3.本地写一个加密类,对你要加密的敏感信息加密
- import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
- import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
- public class JasyptTest {
- public static void main(String[] args) {
- PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
- SimpleStringPBEConfig config = new SimpleStringPBEConfig();
- config.setPassword("xxxx");//改成你的密码
- config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256");
- config.setKeyObtentionIterations("1000");
- config.setPoolSize("1");
- config.setProviderName("SunJCE");
- config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
- config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
- config.setStringOutputType("base64");
- encryptor.setConfig(config);
-
- String originStr = "xxxx" ;//原始字符串
- String encStr = encryptor.encrypt(originStr);
- System.out.println("originStr encrypt is {}"+ encStr);//加密后的字符串,这个贴到配置文件中
- System.out.println("originStr is {}"+ encryptor.decrypt(encStr));//验证一下解密
- }
- }
复制代码 4.修改配置文件
将加密后的信息用前面用 ENC( ) 包起来
例如:
原始配置:- spring.datascoure.password=yourpassword
复制代码 改成:- spring.datascoure.password=ENC(JL2t1CZpj+cTQ30IFKu0lkoZCVpYbVIhLm1MRbBpaNI])
复制代码 (完)
参考:
[1] https://zhuanlan.zhihu.com/p/480828512
[2] https://github.com/ulisesbocchio/jasypt-spring-boot
source: https://wangxuan.me/tech/2023/11/23/use-jasypt-to-encrypt-configs.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |