加密
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI password=0123456789abcdeffedcba9876543210 algorithm=PBEWithMD5AndDES input=zhgwthjs@123456!
解密
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="加密后的密文" password=jasypt配置密码 algorithm=PBEWithMD5AndD
package com.test;
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.EnvironmentPBEConfig;
import org.junit.Test;
/**
* @ClassName JasyptTest
* @Author chaoge
* @Description TODO
* @Date 2020/7/2 10:28
*/
public class JasyptTest {
@Test
public void testEncrypt() throws Exception {
StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
EnvironmentPBEConfig config = new EnvironmentPBEConfig();
config.setAlgorithm("PBEWithMD5AndDES"); // 加密的算法,这个算法是默认的
config.setPassword("ljk"); // 加密的密钥
standardPBEStringEncryptor.setConfig(config);
String plainText = "linjingke";
String encryptedText = standardPBEStringEncryptor.encrypt(plainText);
System.out.println(encryptedText);
}
@Test
public void testDe() throws Exception {
StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
EnvironmentPBEConfig config = new EnvironmentPBEConfig();
config.setAlgorithm("PBEWithMD5AndDES");
config.setPassword("D30CCEEC367C55F0E4C7B3BE8207C5DD");
standardPBEStringEncryptor.setConfig(config);
String encryptedText = "a2Dg/nGebGU7dlTTaI93x4KVA0UMd0IvdMIs1OYHZCU=";
String plainText = standardPBEStringEncryptor.decrypt(encryptedText);
System.out.println(plainText);
}
}
描述
其中
input 为要加密的明文
password为秘钥,放在application.yml,如果有调整,做对应的修改
OUTPUT 为加密后的密文,放在application-*.yml ,该ENC(JIuUzINv7HtH4gUdgtXOguD9iZCsyt51) ?参考application-dev.yml
jasypt:
?encryptor:
? ?password: 0123456789abcdeffedcba9876543210 ?
其他服务也要做相应的操作
注意:OUTPUT 为加密后的密文,根据OUTPUT 修改mysql redis密码
遇到的坑
chjasypt-1.9.2.jar
具体原因没有深究,升级到 jasypt-1.9.3.jar 后就没有这个问题了
?
|