12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package com.its.op.config;
- import org.jasypt.encryption.StringEncryptor;
- import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
- import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
- import org.jasypt.salt.StringFixedSaltGenerator;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.context.annotation.Bean;
- //@Configuration
- //@EnableEncryptableProperties
- public class JasyptConfig {
- @Value("${jasypt.encryptor.password:asdkjfaslkjflkajslfjkajlkf}")
- private final String encKey = "asdkjfaslkjflkajslfjkajlkf";
- @Bean("jasyptStringEncryptor")
- public StringEncryptor stringEncryptor() {
- PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
- SimpleStringPBEConfig config = new SimpleStringPBEConfig();
- // ==> SimpleStringPBEConfig 사용시 아래 3개 반드시 설정해야함
- config.setPassword(encKey); // 암호화에 사용할 키
- config.setPoolSize(1); // Pool Size
- config.setSaltGenerator(new StringFixedSaltGenerator("fixedSalt")); // 고정으로 암호화(Default: Random)
- //config.setAlgorithm("PBEWithMD5AndTripleDES");
- //config.setAlgorithm("PBEWithMD5AndDES"); // Jasypt 를 이용한 암호화 알고리즘
- //config.setProviderName("SunJCE");
- config.setKeyObtentionIterations("10000");
- config.setStringOutputType("base64");
- /*private Boolean proxyPropertySources = false;
- private String bean = "jasyptStringEncryptor";
- private String password;
- private String algorithm = "PBEWithMD5AndDES";
- private String keyObtentionIterations = "1000";
- private String poolSize = "1";
- private String providerName = null;
- //config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
- private String saltGeneratorClassname = "org.jasypt.salt.RandomSaltGenerator";
- private String stringOutputType = "base64";*/
- encryptor.setConfig(config);
- return encryptor;
- }
- public String getKey() {
- return this.encKey;
- }
- public String encrypt(String string) {
- StringEncryptor encrypt = stringEncryptor();
- return encrypt.encrypt(string);
- }
- public String decrypt(String string) {
- StringEncryptor decrypt = stringEncryptor();
- return decrypt.decrypt(string);
- }
- }
|