Springboot jasypt加密方案

本文介绍了如何通过集成Jasypt工具包来加密SpringBoot应用中的敏感信息,如数据库密码和第三方密钥,提升应用的安全性。详细阐述了Jasypt的版本兼容性问题,以及在pom.xml中引入依赖、配置application.properties和实际加密解密操作的步骤,旨在帮助开发者保护应用程序的配置信息。
摘要由CSDN通过智能技术生成

加密说明:

资源文件中的内容通常情况下是明文显示,安全性就比较低一些。打开application.properties或application.yml,比如mysql登陆密码,redis登陆密码以及第三方的密钥等等一览无余,这里介绍一个加解密组件,提高一些属性配置的安全性。

jasypt由一个国外大神写的一个springboot下的工具包。Git地址:https://github.com/ulisesbocchio/jasypt-spring-boot

注意事项:

springboot2.x以下的版本,只能用jasypt1.x的版本。如果用jasypt2.x的版本,启动会报错,详见https://github.com/ulisesbocchio/jasypt-spring-boot/issues/97

集成使用:

pom  

<jasypt-spring-boot.version>2.1.0</jasypt-spring-boot.version>
<dependency>
 <groupId>com.github.ulisesbocchio</groupId>
 <artifactId>jasypt-spring-boot</artifactId>
 <version>${jasypt-spring-boot.version}</version>
</dependency>

application.properties

#数据加密私钥
jasypt.encryptor.password=lulj

数据库加密示例:

spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.183.206/alarmV2.2?useUnicode=true&characterEncoding=UTF-8
#可用ENC(加密的密文)也可以直接使用明文账号密码
spring.datasource.username=ENC(iUmZ4z687RL++Pxy9tNxlA====)
spring.datasource.password=ENC(iUmZ4z687RL++Pxy9tNxlA====)
#spring.datasource.username=root
#spring.datasource.password=root

测试类

@RestController
@Slf4j
public class HelloController {

 @Autowired
 private StringEncryptor encryptor;


 @RequestMapping("/hi")
 public Result hello(HttpServletRequest request) {
   log.info("info : hello,The address you requested is:" + request.getRequestURL());
 return Result.success();
 }

/**
 * 测试jasypt加密解密
 */
@GetMapping("/jasypt")
public void testJasypt() {
 String password = "123456";
 String encryptPwd = encryptor.encrypt(password);
 System.out.println("加密::" + encryptPwd);
 System.out.println("解密:" + encryptor.decrypt(encryptPwd));
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值