SpringBoot集成jasypt
-
引入jar包
<jasypt.version>2.1.1</jasypt.version> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>${jasypt.version}</version> </dependency>
-
application.yml配置
#jasypt jasypt: pwd: Console4BAS
-
配置jasypt配置类
import org.jasypt.encryption.StringEncryptor; import org.jasypt.encryption.pbe.PooledPBEStringEncryptor; import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class JasyptConfiguration { public JasyptConfiguration() { } @Bean(name = {"jasyptStringEncryptor"}) public StringEncryptor jasyptStringEncryptor(@Value("${jasypt.pwd:}") String pwd) { PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); SimpleStringPBEConfig config = new SimpleStringPBEConfig(); config.setPassword(pwd); config.setAlgorithm("PBEWithMD5AndDES"); config.setKeyObtentionIterations("1000"); config.setPoolSize("1"); config.setProviderName("SunJCE"); config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator"); config.setStringOutputType("base64"); encryptor.setConfig(config); return encryptor; } }
-
在application.yml中需要加密的配置项,使用ENC(····)扩起来
username: name password: ENC(aVHFHpAL1WKqhsDAh9BHYUhOQWuaBXvA/uRWV2/A/8l+MUoUVabgL2GBd8+g==)