配置文件是用jasypt加密解密方式
pom文件
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
java代码
import org.jasypt.encryption.StringEncryptor;
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
import org.jasypt.util.text.BasicTextEncryptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
// 这是配置类
@Configuration
public class JasyptConfig {
@Bean("jasyptStringEncryptor")
public StringEncryptor stringEncryptor() {
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
//此盐值必须跟密码加密时的盐值保持一致
config.setPassword("root");
config.setAlgorithm("PBEWithMD5AndDES");
config.setKeyObtentionIterations("1000");
config.setPoolSize("1");
config.setProviderName("SunJCE");
config.setStringOutputType("base64");
encryptor.setConfig(config);
return encryptor;
}
// 下面是测试类
public static void main(String args[]) {
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
//此盐值必须跟密码加密时的盐值保持一致
config.setPassword("root");
config.setAlgorithm("PBEWithMD5AndDES");
config.setKeyObtentionIterations("1000");
config.setPoolSize("1");
config.setProviderName("SunJCE");
config.setStringOutputType("base64");
encryptor.setConfig(config);
String zs = encryptor.encrypt("张三");
String zsd = encryptor.decrypt(zs);
System.out.println(zs);
System.out.println(zsd);
}
public void jiami() {
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
//加密所需的salt(盐)
textEncryptor.setPassword("root");
//要加密的数据(数据库的用户名或密码)
String username = textEncryptor.encrypt("root");
String password = textEncryptor.encrypt("root123");
System.out.println("username:" + username);
System.out.println("password:" + password);
}
}
---- yml文件配置
spring:
# mysql 数据库配置
datasource:
url: jdbc:mysql://localhost:3306/test
username: root
auth: ENC(xxxxx)
eureka:
client:
serviceUrl:
defaultZone: ENC(fljkjaogfiqnegoqaejufglankgflaudngq/AGqgpqfjqqQTFqQFQFgqgWZwy/1A==)
# defaultZone: ${eureka-server:http://test:pass@localhost:9090/eureka}
register-with-eureka: false
enabled: false