9一、引入jar包
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
二、新增JasyptUtils工具类
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
public class JasyptUtils {
/**
* 加密
*
* @param password 配置文件中设定的加密盐值
* @param value 加密值
* @return 加密后的字符串
*/
public static String encrypt(String password, String value) {
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
encryptor.setConfig(encrypt(password));
return encryptor.encrypt(value);
}
/**
* 解密
*
* @param password 配置文件中设定的加密盐值
* @param value 解密密文
* @return 解密后的字符串
*/
public static String decrypt(String password, String value) {
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
encryptor.setConfig(encrypt(password));
return encryptor.decrypt(value);
}
/**
* 配置,对应yml中的配置
*
* @param password 盐值
* @return SimpleStringPBEConfig
*/
public static SimpleStringPBEConfig encrypt(String password) {
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
//设置盐值
config.setPassword(password);
//设置算法
config.setAlgorithm("PBEWithMD5AndDES");
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) {
// 加密 salt 盐 建议采用MD5加密
String userNameEncryptStr = encrypt("salt", "root");
String passwordEncryptStr = encrypt("salt", "root");
System.out.println("加密后:" + userNameEncryptStr);
System.out.println("加密后:" + passwordEncryptStr);
// 解密 salt 盐
String userNameDecryptStr = decrypt("salt", userNameEncryptStr);
String passwordDecryptStr = decrypt("salt", passwordEncryptStr);
System.out.println("解密后:" + userNameDecryptStr);
System.out.println("解密后:" + passwordDecryptStr);
}
}
三、修改application.yml文章来源:https://www.toymoban.com/news/detail-534225.html
spring:
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/zipkin?serverTimezone=GMT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
#username: root
#password: root
username: ENC(jw1V2fEkHpAhwskUUssbm/St79Hn0Nve)
password: ENC(jw1V2fEkHpAhwskUUssbm/St79Hn0Nve)
jasypt:
encryptor:
# 密码盐值(自定义)
password: salt
# 加密算法设置
algorithm: PBEWithMD5AndDES
iv-generator-classname: org.jasypt.iv.RandomIvGenerator
salt-generator-classname: org.jasypt.salt.RandomSaltGenerator
将加密后密码替换值yml文件ENC()括号内文章来源地址https://www.toymoban.com/news/detail-534225.html
到了这里,关于Jasypt 数据库及中间件密码加解密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!