package com.whyc.util;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
import org.jasypt.properties.PropertyValueEncryptionUtils;
|
import org.jasypt.util.text.BasicTextEncryptor;
|
|
import java.util.Objects;
|
|
@Slf4j
|
public final class JasyptUtils {
|
|
public static void main(String[] args) {
|
String a = encrypt("123456");
|
decrypt(a);
|
|
}
|
|
/**
|
* 加密使用密钥
|
*/
|
//private static final String PRIVATE_KEY = "9Lu6HgEvttjj8vYhy3ID+PqPbumuXhcH";
|
|
private static BasicTextEncryptor basicTextEncryptor = new BasicTextEncryptor();
|
|
static {
|
basicTextEncryptor.setPassword(Objects.requireNonNull(RSAUtil.decrypt("B2VlA97djZaWo+mNIte68v49Q4/cxGWm+0EhV0Zatx1ZF4THsl4B+IW3qvPMtvLXqOwsHhaNyX6iMm7syyvXSfcEDeaxeFaNbpT+nYzQBsbP3/tBKXQeUyK9FYp6j8b04t0B+cv5GiRDsmxX7xkn+fboIOi8gXrr+Q5xnYvqfklEb7X3P3NmNtOsGqUsBuY9jlU6wIOuBpGZ85kYWS+sc8cNUu1ThjK5sRJ6xrJMrLf0gCvCUpe257MS2vZVSwzShC67JqSkkcoVYvkoiADwZHdjca/iWxJbEgDT7CZwilGDTdHRMclD0nIunUTC8cLcTrAdUlPvmrK6VFNgvhpzhnZh5g+ap/mN83bXgpez4gScQ1dMx43Z5tH2s0CmTOASJmshthOJ+Ib8ZaT25HjLvxFxER0vnffgkEEgZ5LxEWwrgfsMB/YCE1EV4yqdNp1FDxEVkSch6TspUJoQcPnZRFSYEMl8yWsrR9nOHvoOSflIxGCWxk8wHJyur6tft8xc")));
|
}
|
|
/**
|
* 私有构造方法,防止被意外实例化
|
*/
|
private JasyptUtils() {
|
}
|
|
/**
|
* 明文加密
|
*
|
* @param plaintext 明文
|
* @return String
|
*/
|
public static String encrypt(String plaintext) {
|
log.info("明文字符串为:{}", plaintext);
|
// 使用的加密算法参考2.2节内容,也可以在源码的类注释中看到
|
String ciphertext = basicTextEncryptor.encrypt(plaintext);
|
log.info("密文字符串为:{}", ciphertext);
|
return ciphertext;
|
}
|
|
/**
|
* 解密
|
*
|
* @param ciphertext 密文
|
* @return String
|
*/
|
public static String decrypt(String ciphertext) {
|
log.info("密文字符串为:{}", ciphertext);
|
ciphertext = "ENC(" + ciphertext + ")";
|
if (PropertyValueEncryptionUtils.isEncryptedValue(ciphertext)) {
|
String plaintext = PropertyValueEncryptionUtils.decrypt(ciphertext, basicTextEncryptor);
|
log.info("明文字符串为:{}", plaintext);
|
return plaintext;
|
}
|
log.error("解密失败!");
|
return "";
|
}
|
}
|