AppEncryptor.java 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package com.punchsettle.server;
  2. import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
  3. import org.jasypt.iv.RandomIvGenerator;
  4. import org.jasypt.salt.RandomSaltGenerator;
  5. /**
  6. * 应用Jasypt加解密工具
  7. */
  8. public class AppEncryptor {
  9. /**
  10. * 密码
  11. */
  12. private String password;
  13. /**
  14. * 算法
  15. */
  16. private String algorithm;
  17. /**
  18. * 加解密实例
  19. */
  20. private StandardPBEStringEncryptor standardPBEStringEncryptor;
  21. public AppEncryptor(String password, String algorithm) {
  22. this.password = password;
  23. this.algorithm = algorithm;
  24. standardPBEStringEncryptor = new StandardPBEStringEncryptor();
  25. standardPBEStringEncryptor.setPassword(password);
  26. standardPBEStringEncryptor.setAlgorithm(algorithm);
  27. standardPBEStringEncryptor.setSaltGenerator(new RandomSaltGenerator());
  28. standardPBEStringEncryptor.setIvGenerator(new RandomIvGenerator());
  29. }
  30. /**
  31. * 加密并输出加密结果
  32. * @param filedName 待加密的字段名称
  33. * @param filedStr 待加密的字符串
  34. */
  35. public void encryptAndShow(String filedName, String filedStr) {
  36. String encryptStr = standardPBEStringEncryptor.encrypt(filedStr);
  37. System.out.println(String.format("%s:%s", filedName, encryptStr));
  38. }
  39. public static void main(String[] args) {
  40. AppEncryptor appEncryptor = new AppEncryptor("", "PBEWithMD5AndDES");
  41. appEncryptor.encryptAndShow("dev", "");
  42. AppEncryptor appEncryptor2 = new AppEncryptor("", "PBEWithMD5AndDES");
  43. appEncryptor2.encryptAndShow("prod", "");
  44. }
  45. }