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("MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAu7CdCMIoWXUX584JpmE1bTE1r1MtmZGswsSbsm4s9zqETQ4BmUT2kz/wvvGsI8T3ZvTT4KIyKP4Ez+yNVejMM5XwR95KF4e3UwMc724buWKl4pVL09kvkCZt8ZKf359VAvhyHHz80wIiVmJs6xbho7OBsv/s7Hwho0n4HPL4u/eNR5vWa2rtgQG1+fi1XP0UiSRKKW15Va9R2CI3zB+sffquhyX5fi+06NibWzk7OPU+EGvAwkaJtrmfLAvpwr4+G0MBLIsPVFV17Sgpoj62rtfbhHwmLSo1JTw+/JskDQOjxXfw+w3uHAZgPTlEmn2Ya9ssIljqCBfvM9nbGUWcnmppKlPm6kECa4RsgPiRgPFV+nT/Q98kfUTb798Sy63x4NIZkLQn1DDbmcAgUqLR6y1r0fD8Ne3vVtuZlVR/8ZlcRAfb+th2cNN0rytrnUreJo7kPtTFdkNtmj0KdUkRO8ea0YymEQal+b0tCl3V8osSy+qO2OVRd7yCvpOWEYOBAgMBAAE=");
|
String jasA="0BFKp+nuSlmBu4YAB8U7rn5PoV2QVyGu";
|
decrypt(jasA);
|
|
}
|
|
/**
|
* 加密使用密钥
|
*/
|
private static final String PRIVATE_KEY = "hELEEWWEEr9Lu6HgEvttjj8vYhy3ID+PqPbumuXhcHhe";
|
|
private static BasicTextEncryptor basicTextEncryptor = new BasicTextEncryptor();
|
|
static {
|
basicTextEncryptor.setPassword(Objects.requireNonNull(RSAUtil.decrypt("DF3lSrjXSHClZgQzagH0D038z1gCoG+FcZLPMZ93Ucz1MeNCN+J5iawqQKzMXusXPuHeygfuLSajiCNi8ad2F7H7lpL9FhzjH+2Q9d9d1H2xRe+ElHh0SC8aT4FHgrazhx73wn2MlxX8SIm2PvC8oBLXbM+7KQ4r5bNwiQl0uUOC7D9ONbYzQAy8zCkCBke+h4Q6b5SlGaGz2OswKJPe7Wjpsf/3hnUKV6KP+ACYfFry9Nq13Wb3nsPfjuMnwsmUe8sRxj77pIVmrbEIMaO12GJMJbErA0/1ZjfPkzH3YFZe/mmSOmHegM/jiXnnPemh+LRyZGrKF3Y19B8Cl1EMxp106ss8/7ypYiFn0XWb7gRQqfuqQ8zsU0lOWxCWuk2jyWKxBdftt3edDzmoROHJfllHRffgPZ/MPYg6C6JqBXz7Xqngb0mClwt7OQVSvTau+NdTlMoYdcULOTZqa8IJi4rtUMMnVdhj0Avpl6ekXBPeVcvWsqTpGoep5T0yQJ9M")));
|
//basicTextEncryptor.setPassword(Objects.requireNonNull(PRIVATE_KEY));
|
}
|
|
/**
|
* 私有构造方法,防止被意外实例化
|
*/
|
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 "";
|
}
|
}
|