0
点赞
收藏
分享

微信扫一扫

jasyp自定义加解密

90哦吼 2022-04-13 阅读 45

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;
    }
}

这样项目启动的时候就会走自己配置的加解密类,而不会走框架默认的,这样做的原因主要是因为走框架默认的有时会卡在加解密,导致项目启动不起来

举报

相关推荐

0 条评论