|
@@ -0,0 +1,63 @@
|
|
|
+package com.its.op.config;
|
|
|
+
|
|
|
+import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties;
|
|
|
+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;
|
|
|
+import org.springframework.context.annotation.Configuration;
|
|
|
+
|
|
|
+@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);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|