目录1. 简介2. 引入依赖3. 自定义加解密的方式4. 获取密文5. 编写
配置文件6. 验证结果
1. 简介
在项目开发的过程
中,经常会需要在
配置文件
中存储一些敏感的信息,如数据库的账号密码,支付相关信息,密钥等等,这些信息在开发的过程
中一般是以明文的方式存储在
配置文件
中。这种方式的存储会存在非常大的安全隐患。
jasypt能够很好的解决这一类的问题,特此记录,一遍后面学习
使用。
2. 引入依赖
<!--
springboot整合
jasypt-->
<dependency>
jasypt-spring-boot-starter实现加解密和数据返显
一、jasypt-spring-boot-starter在springboot中的加解密(默认加密法)
<!--实现自动 加密解密-->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-sprin
Pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven
标题jasypt-spring-boot-starter跟nacos热加载冲突
用jasypt-spring-boot-starter3.0.2后部署到生产环境启动会出现下面情况,当版本超过 2.0.0 就无法刷新,具体什么原因还未找到,更换版本未2.0.0时就解决了
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-star
赠送jar包:jasypt-spring-boot-3.0.4.jar;
赠送原API文档:jasypt-spring-boot-3.0.4-javadoc.jar;
赠送源代码:jasypt-spring-boot-3.0.4-sources.jar;
赠送Maven依赖信息文件:jasypt-spring-boot-3.0.4.pom;
包含翻译后的API文档:jasypt-spring-boot-3.0.4-javadoc-API文档-中文(简体)-英语-对照版.zip;
Maven坐标:com.github.ulisesbocchio:jasypt-spring-boot:3.0.4;
标签:github、ulisesbocchio、jasypt、spring、boot、中英对照文档、jar包、java;
使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。
人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
双语对照,边学技术、边学英语。
赠送jar包:
jasypt-
spring-boot-3.0.4.jar;
赠送原API文档:
jasypt-
spring-boot-3.0.4-javadoc.jar;
赠送源代码:
jasypt-
spring-boot-3.0.4-sources.jar;
赠送Maven依赖信息文件:
jasypt-
spring-boot-3.0.4.pom;
包含翻译后的API文档:
jasypt-
spring-boot-3.0.4-javadoc-API文档-
中文(简体)版.zip;
Maven坐标:com.github.ulisesbocchio:
jasypt-
spring-boot:3.0.4;
标签:github、ulisesbocchio、
jasypt、
spring、
boot、
中文文档、jar包、java;
使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。
人性化翻译,文档
中的代码和结构保持不变,注释和说明精准翻译,请放心
使用。
jasypt-spring-boot
用于Spring Boot 1.4.X,1.5.X和2.0.X的集成
Jasypt Spring Boot为Spring Boot应用程序中的属性源提供了加密支持。 有3种方法可以将jasypt-spring-boot集成到您的项目中:
如果使用@SpringBootApplication或@EnableAutoConfiguration只需将启动程序jar jasypt-spring-boot-starter到您的类路径中, @SpringBootApplication在整个Spring环境中启用可加密属性
将jasypt-spring-boot添加到您的类路径中,并将@EnableEncryptableProperties添加到您的主Configuration类中,以在整个Spring环境中启用可加密属性
将jasypt-spring-boot添加到您的类路径中,并使用@EncrytablePropertySource声明各个可加密的属性源
什么是新的?
更新05/31/2020:版本3.0.3发行版包括
修正了一些小错误
版本对应的坑
使用的时候还是遇到一个坑,就是jasypt的版本与spring boot版本存在对应情况。可以看到jasypt是区分java7和java8的,也存在依赖spring版本的情况。
自己尝试了一下
在使用jasypt-spring-boot-starter的前提下
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
2. 在 application.properties 文件中配置加密参数,如下:
jasypt.encryptor.password=yourPassword
jasypt.encryptor.algorithm=PBEWithMD5AndDES
其中,yourPassword 为你自己设置的密码,algorithm 为加密算法,这里使用 PBEWithMD5AndDES 算法。
3. 在需要加密的字段上使用 @Value 注解,并在属性值前添加 ENC() 前缀,如下:
@Value("${my.property}")
private String myProperty;
其中,my.property 即为需要加密的字段,在属性值前添加 ENC() 前缀,如下:
my.property=ENC(encryptedValue)
其中,encryptedValue 为加密后的值。
4. 在启动类上添加注解 @EnableEncryptableProperties,如下:
@SpringBootApplication
@EnableEncryptableProperties
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
5. 运行程序,即可使用 jasypt-spring-boot-starter 进行加解密。
注意,以上步骤仅做参考,具体使用方法需根据自己的实际情况进行调整。
spring cloud config java.lang.IllegalStateException: Could not locate PropertySource and the fail fa
17873
FlywayException: Validate failed: Detected resolved migration not applied to database: 1.0.020190110
15789
spring cloud config java.lang.IllegalStateException: Could not locate PropertySource and the fail fa
JNeuman: