21、Jasypt-SpringBoot配置文件信息加密
千里之行,始于足下
正文
Jasypt(Java Simplified Encryption)是一个轻量级的Java加密库,旨在简化加密操作,使Java开发者能够在应用程序中轻松地实现数据加密和解密。它支持多种常见的加密算法,并提供了易于使用的 API 和加密容器,帮助开发者保护敏感信息(如密码、密钥、API 密钥、数据库密码等)。
最常见的加密算法包括:
1、PBEWithMD5AndDES:基于密码短语的加密(使用 MD5 和 DES 算法)。
2、AES (Advanced Encryption Standard):一种对称加密算法,通常用于较强的加密需求。
3、RSA:非对称加密算法,用于公共密钥加密。
4、PBKDF2:一种基于密码的密钥派生函数,用于增强密码强度。
Jasypt-SpringBoot的基本用法:
1、POM依赖:
<!-- 加解密依赖--> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.5</version> </dependency>
2、YML配置:
# 加密配置 jasypt: encryptor: # 指定加密密钥,生产环境建议放到启动参数 password: your-secret # 指定解密算法,需要和加密时使用的算法一致 algorithm: PBEWithMD5AndDES # 指定initialization vector类型 iv-generator-classname: org.jasypt.iv.NoIvGenerator
3、自定义加解密工具类:
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; import org.springframework.util.ObjectUtils; /** * 加解密工具类 */ public class EncrypDecryptUtil { /** * 加密 * * @param password 加密时使用的密码 * @param value 需要加密的值 * @return */ public static String encypt(String password, String value) { if(ObjectUtils.isEmpty(value)){ return null; } StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor(); encryptor.setPassword(password); return encryptor.encrypt(value); } /** * 解密 * * @param password 解密时使用的密码 * @param value 需要解密的值 * @return */ public static String decypt(String password, String value) { if(ObjectUtils.isEmpty(value)){ return null; } StandardPBEStringEncryptor decryptor = new StandardPBEStringEncryptor(); decryptor.setPassword(password); return decryptor.decrypt(value); } public static void main(String[] args) { // "your-secret": YML中配置 //加密 System.out.println(EncrypDecryptUtil.encypt("your-secret", "root")); System.out.println(EncrypDecryptUtil.encypt("your-secret", "root")); //解密 System.out.println(EncrypDecryptUtil.decypt("your-secret", "7SZVFKSF09DDdmLwM8pU9dGKw==")); } }
4、相关使用:
ENC(密文):用于标记加密数据,其中括号中的部分是加密后的内容
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人