JasyptConfig.java 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package com.its.op.config;
  2. import org.jasypt.encryption.StringEncryptor;
  3. import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
  4. import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
  5. import org.jasypt.salt.StringFixedSaltGenerator;
  6. import org.springframework.beans.factory.annotation.Value;
  7. import org.springframework.context.annotation.Bean;
  8. //@Configuration
  9. //@EnableEncryptableProperties
  10. public class JasyptConfig {
  11. @Value("${jasypt.encryptor.password:asdkjfaslkjflkajslfjkajlkf}")
  12. private final String encKey = "asdkjfaslkjflkajslfjkajlkf";
  13. @Bean("jasyptStringEncryptor")
  14. public StringEncryptor stringEncryptor() {
  15. PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
  16. SimpleStringPBEConfig config = new SimpleStringPBEConfig();
  17. // ==> SimpleStringPBEConfig 사용시 아래 3개 반드시 설정해야함
  18. config.setPassword(encKey); // 암호화에 사용할 키
  19. config.setPoolSize(1); // Pool Size
  20. config.setSaltGenerator(new StringFixedSaltGenerator("fixedSalt")); // 고정으로 암호화(Default: Random)
  21. //config.setAlgorithm("PBEWithMD5AndTripleDES");
  22. //config.setAlgorithm("PBEWithMD5AndDES"); // Jasypt 를 이용한 암호화 알고리즘
  23. //config.setProviderName("SunJCE");
  24. config.setKeyObtentionIterations("10000");
  25. config.setStringOutputType("base64");
  26. /*private Boolean proxyPropertySources = false;
  27. private String bean = "jasyptStringEncryptor";
  28. private String password;
  29. private String algorithm = "PBEWithMD5AndDES";
  30. private String keyObtentionIterations = "1000";
  31. private String poolSize = "1";
  32. private String providerName = null;
  33. //config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
  34. private String saltGeneratorClassname = "org.jasypt.salt.RandomSaltGenerator";
  35. private String stringOutputType = "base64";*/
  36. encryptor.setConfig(config);
  37. return encryptor;
  38. }
  39. public String getKey() {
  40. return this.encKey;
  41. }
  42. public String encrypt(String string) {
  43. StringEncryptor encrypt = stringEncryptor();
  44. return encrypt.encrypt(string);
  45. }
  46. public String decrypt(String string) {
  47. StringEncryptor decrypt = stringEncryptor();
  48. return decrypt.decrypt(string);
  49. }
  50. }