spring boot项目通过jasypt-spring-boot-starter加密配置Demo
1. pom.xml增加jasypt-spring-boot-starter依赖
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency>
2.application.properties使用加密了的配置
test.datasource.username=ENC(MncHf2ANrI7ecelmdnHmzg==) test.datasource.password=ENC(vQPa96fd5XhDzpj2ktHRvQ==)
注:红色为密文
3.配置密码
可配置在application.properties文件中(这种方式不安全)
jasypt.encryptor.password=123456
在JVM启动参数中设置
-Djasypt.encryptor.password=123456
附:生成密文的工具代码
package com.example.demo; import org.jasypt.encryption.pbe.PooledPBEStringEncryptor; import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; public class EncryptConfigUtil { public static void main(String[] args) { String password = "123456"; String data = "root"; PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); SimpleStringPBEConfig config = new SimpleStringPBEConfig(); config.setPassword(password); config.setAlgorithm("PBEWithMD5AndDES"); config.setKeyObtentionIterations("1000"); config.setPoolSize("1"); config.setProviderName(null); config.setProviderClassName(null); config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator"); config.setIvGeneratorClassName("org.jasypt.salt.NoOpIVGenerator"); config.setStringOutputType("base64"); encryptor.setConfig(config); System.out.println(encryptor.encrypt(data)); } }
上一篇:
IDEA上Java项目控制台中文乱码