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 ""; } }