1,先定义加密启动配置文件
@Configuration
public class JasyPtEncryptionConfig {
@Bean("jasyptStringEncryptor")
public StringEncryptor stringEncryptor() {
DESEncrypt desEncrypt = new DESEncrypt();
return desEncrypt;
}
}
2,创建自定义加解密类
public class DESEncrypt implements StringEncryptor {
@Autowired
private ServiceConfig serviceConfig;
@Override
public String encrypt(String s) {
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
// serviceConfig.getEncryptorPassword() 为加解密盐
encryptor.setConfig(cryptor(serviceConfig.getEncryptorPassword()));
return encryptor.encrypt(s);
}
@Override
public String decrypt(String s) {
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
encryptor.setConfig(cryptor(serviceConfig.getEncryptorPassword()));
return encryptor.decrypt(s);
}
public static SimpleStringPBEConfig cryptor(String password){
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
config.setPassword(password);
config.setAlgorithm("PBEWithMD5AndDES");
config.setKeyObtentionIterations("1000");
config.setPoolSize("1");
config.setProviderName("SunJCE");
config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
config.setStringOutputType("base64");
return config;
}
}
这样项目启动的时候就会走自己配置的加解密类,而不会走框架默认的,这样做的原因主要是因为走框架默认的有时会卡在加解密,导致项目启动不起来