ItsOpServerApplicationTests.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package com.its.op;
  2. import com.its.utils.AES256Util;
  3. import lombok.extern.slf4j.Slf4j;
  4. import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
  5. import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
  6. import org.jasypt.salt.StringFixedSaltGenerator;
  7. import org.junit.jupiter.api.Test;
  8. import org.springframework.boot.test.context.SpringBootTest;
  9. import java.time.LocalDateTime;
  10. import java.time.format.DateTimeFormatter;
  11. @Slf4j
  12. @SpringBootTest
  13. public class ItsOpServerApplicationTests {
  14. void reference1() {
  15. String name = "test";
  16. LocalDateTime ldt = LocalDateTime.now();
  17. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-dd-MM HH:mm:ss.SSS");
  18. System.out.println(ldt.format(formatter) + " Started thread " + name);
  19. try {
  20. Thread.sleep(2000);
  21. } catch (InterruptedException e) {
  22. e.printStackTrace();
  23. }
  24. ldt = LocalDateTime.now();
  25. System.out.println(ldt.format(formatter) + " Ended thread " + name);
  26. }
  27. @Test
  28. void test1() {
  29. for (int ii = 0; ii < 24; ii++) {
  30. for (int jj = 0; jj < 12; jj++) {
  31. log.error("{}:{}", ii, jj*5);
  32. }
  33. }
  34. String prcsDt = "20220120173526";
  35. log.error("{}", prcsDt.substring(0, 2));
  36. log.error("{}", prcsDt.substring(8, 10));
  37. log.error("{}", prcsDt.substring(10, 12));
  38. String svcDt = "20210120173526";
  39. log.error("compareTo: {}", svcDt.compareTo(prcsDt));
  40. }
  41. @Test
  42. void jasypt() {
  43. String encKey = "asdkjfaslkjflkajslfjkajlkf";
  44. PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
  45. SimpleStringPBEConfig config = new SimpleStringPBEConfig();
  46. // ==> SimpleStringPBEConfig 사용시 아래 3개 반드시 설정해야함
  47. config.setPassword(encKey); // 암호화에 사용할 키
  48. config.setPoolSize(1); // Pool Size
  49. config.setSaltGenerator(new StringFixedSaltGenerator("fixedSalt")); // 고정으로 암호화(Default: Random)
  50. //config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
  51. //config.setAlgorithm("PBEWithMD5AndTripleDES");
  52. config.setAlgorithm("PBEWithMD5AndDES"); // Jasypt 를 이용한 암호화 알고리즘
  53. config.setProviderName("SunJCE");
  54. config.setKeyObtentionIterations("10000");
  55. config.setStringOutputType("base64");
  56. /*private Boolean proxyPropertySources = false;
  57. private String bean = "jasyptStringEncryptor";
  58. private String password;
  59. private String algorithm = "PBEWithMD5AndDES";
  60. private String keyObtentionIterations = "1000";
  61. private String poolSize = "1";
  62. private String providerName = null;
  63. //config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
  64. private String saltGeneratorClassname = "org.jasypt.salt.RandomSaltGenerator";
  65. private String stringOutputType = "base64";*/
  66. encryptor.setConfig(config);
  67. String yiits = encryptor.encrypt("yiits");
  68. String rutis = encryptor.encrypt("rutis");
  69. log.info("{}", yiits);
  70. log.info("{}", rutis);
  71. }
  72. @Test
  73. void sha256() {
  74. String data = AES256Util.encryptSHA256("yonginits");
  75. log.info("{}", data);
  76. log.info("{}", data.toUpperCase());
  77. log.info("{}", AES256Util.encryptSHA256("yiits"));
  78. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  79. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  80. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  81. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  82. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  83. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  84. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  85. log.info("{}", AES256Util.encryptSHA256("yonginits"));
  86. }
  87. @Test
  88. void test9() {
  89. int ltc1 = 2933;
  90. int TOTAL = 4361;
  91. double tLtc1 = Double.parseDouble(String.format("%.1f", ltc1 / TOTAL * 100.0));
  92. log.error("{}, {}, {}, {}", ltc1, TOTAL, tLtc1, (ltc1 / (float)TOTAL * 100.0));
  93. }
  94. }