# Jasypt统一加密SpringBoot项目的配置属性 **Repository Path**: cn-blogs/jasypt-spring-boot-demo ## Basic Information - **Project Name**: Jasypt统一加密SpringBoot项目的配置属性 - **Description**: 本样例工程演示的是使用 Jasypt 给 SpringBoot 项目的配置属性统一加密的基础操作 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-26 - **Last Updated**: 2024-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 用 Jasypt 给 SpringBoot 项目的配置属性统一加密 本样例工程演示的是使用 Jasypt 给 SpringBoot 项目的配置属性统一加密的基础操作。 Jasypt 原本只是一个加密解密的基础工具,但经过进一步的封装增强后的工具,便能够实现对 SpringBoot 项目的配置属性予以统一加密的目的。 这个工具库便是 jasypt-spring-boot-starter 。该工具使用起来非常简单方便,默认情况下,只需要进行以下两步: 1. 配置 jasypt 的加密密钥 Jasypt 默认的加密类的是 SimpleAsymmetricStringEncryptor, 它的密钥取自属性 jasypt.encryptor.password,故在本示例中,将其罗列在了 application.yml 中。 但被注解了,因为配置加密,就是为了防止配置文件内容被泄漏,导致敏感的内容外泄。如果再将 Jasypt 的 password 也写在配置文件中,则敏感内容加密就没有意义了,因为可以使用该 password 来将加密内容解密 2. 生成密文并标识其需要由Jasypt做解密处理 将要加密的明文,提前用第1步的密钥生成密文,然后将其包裹在ENC()的括号中,这样 Jasypt 就会在属性加载完毕后,对被 ENC() 包裹的属性值进行解密,并将解密后的明原来的值。 另外,本示例还提供了一个工具类 JasyptUtils,用于手动加密和解密文本,第2步提到的提前生成密文,就可以使用此工具生成。