|
@@ -0,0 +1,69 @@
|
|
|
+package com.lantone.common.util;
|
|
|
+
|
|
|
+import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
|
|
|
+import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @Description: Jasypt安全框架加解密工具
|
|
|
+ * @author: rengb
|
|
|
+ * @time: 2022/3/21 15:26
|
|
|
+ */
|
|
|
+public class JasyptUtil {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 解密
|
|
|
+ *
|
|
|
+ * @param password 配置文件中设定的加密密码 jasypt.encryptor.password
|
|
|
+ * @param value 待解密密文
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String decyptPwd(String password, String value) {
|
|
|
+ PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
|
|
|
+ encryptor.setConfig(cryptor(password));
|
|
|
+ String result = encryptor.decrypt(value);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 加密
|
|
|
+ *
|
|
|
+ * @param password 配置文件中设定的加密密码 jasypt.encryptor.password
|
|
|
+ * @param value 待加密值
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String encyptPwd(String password, String value) {
|
|
|
+ PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
|
|
|
+ encryptor.setConfig(cryptor(password));
|
|
|
+ String result = encryptor.encrypt(value);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成通用配置
|
|
|
+ *
|
|
|
+ * @param password 配置文件中设定的加密密码 jasypt.encryptor.password
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static SimpleStringPBEConfig cryptor(String password) {
|
|
|
+ SimpleStringPBEConfig config = new SimpleStringPBEConfig();
|
|
|
+ config.setPassword(password);
|
|
|
+ config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256");
|
|
|
+ config.setKeyObtentionIterations("1000");
|
|
|
+ config.setPoolSize("1");
|
|
|
+ config.setProviderName("SunJCE");
|
|
|
+ config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
|
|
|
+ config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
|
|
|
+ config.setStringOutputType("base64");
|
|
|
+ return config;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void main(String[] args) {
|
|
|
+ // 加密
|
|
|
+ String encPwd = encyptPwd("jasypt", "lantone");
|
|
|
+ // 解密
|
|
|
+ String decPwd = decyptPwd("jasypt", encPwd);
|
|
|
+ System.out.println(encPwd);
|
|
|
+ System.out.println(decPwd);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|