网站建设与管理自考本,专业搜索服务网络公司,如何做网络营销,网站如何推广出去前言
在项目构建过程中#xff0c;保护敏感信息的安全性至关重要#xff0c;为了提高系统的安全性能#xff0c;我们采用了Jasypt来对配置文件中的敏感信息进行加密处理#xff0c;以确保系统的机密信息不被轻易泄露。
步骤
添加Maven依赖
首先#xff0c;我们需要添加…前言
在项目构建过程中保护敏感信息的安全性至关重要为了提高系统的安全性能我们采用了Jasypt来对配置文件中的敏感信息进行加密处理以确保系统的机密信息不被轻易泄露。
步骤
添加Maven依赖
首先我们需要添加Maven依赖以引入Jasypt库 !-- jasypt 配置文件脱敏--dependencygroupIdcom.github.ulisesbocchio/groupIdartifactIdjasypt-spring-boot-starter/artifactIdversion3.0.3/version/dependency创建加密解密工具类
编写解密工具类
package com.aq.common.utils;import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;/*** Author ShipleyZeng* Date 2023/10/1 16:39* ClassName: JasyptUtil*/
public class JasyptUtils {/*** Jasypt生成加密结果* param password 配置文件中设定的加密盐值* param value 加密值* return*/public static String encryptPwd(String password, String value){PooledPBEStringEncryptor encryptor new PooledPBEStringEncryptor();encryptor.setConfig(cryptor(password));String result encryptor.encrypt(value);return result;}/*** 解密* param password 配置文件中设定的加密盐值* param value 解密密文* return*/public static String decryptPwd(String password, String value){PooledPBEStringEncryptor encryptor new PooledPBEStringEncryptor();encryptor.setConfig(cryptor(password));String result encryptor.decrypt(value);return result;}public static SimpleStringPBEConfig cryptor(String password){SimpleStringPBEConfig config new SimpleStringPBEConfig();config.setPassword(password);// 指定加密算法这里使用了PBEPassword-Based Encryption算法采用MD5和DES算法。config.setAlgorithm(PBEWithMD5AndDES);// 设置密钥获取迭代次数config.setKeyObtentionIterations(1000);// 密钥池大小 1代表使用密钥池config.setPoolSize(1);// 加密提供程序的名称config.setProviderName(SunJCE);// 盐config.setSaltGeneratorClassName(org.jasypt.salt.RandomSaltGenerator);// 加密后输出的数据类型config.setStringOutputType(base64);return config;}public static void main(String[] args) {// 对密码123456加密String jasypt encryptPwd(jasypt, 123456);System.out.println(jasypt);// 对得到的密文解密 运行成功String jasypt1 decryptPwd(jasypt, 1DFRBJI4SSiCtcqK0IrA);System.out.println(jasypt1);}
}
将得到的密文替换配置文件进行运行 我这边使用的是mysql数据库的密码加密 启动项目 结果发现报错了 原因是官方在 3.0.0 以后更改了加密算法所以你不设置的话使用网上的方法加密出来的密码启动就会报错官方 issueFailed to bind properties under ‘spring.datasource.password’ to java.lang.String #154 在配置文件当中加入下配置可以解决启动项目报错的问题
# jasypt 密码加密配置
jasypt:encryptor:# 加密盐值password: jasypt# 加密算法设置 3.0.0 以后algorithm: PBEWithMD5AndDESiv-generator-classname: org.jasypt.iv.NoIvGenerator调用本地的查询接口、访问数据库查询到了用户信息 在项目中配置Jasypt的参数如加密盐值和加密算法系统知道如何进行解密操作.Spring Boot会在启动过程中自动检测配置文件中使用ENC()标识的属性值然后调用Jasypt进行解密。这是因为Spring Boot具有属性注入和解析的能力可以在运行时检测并处理这些加密的属性。