首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SpringBoot Jasypt加密数据库账号密码信息

SpringBoot Jasypt加密数据库账号密码信息

作者头像
执笔记忆的空白
发布2020-12-24 10:22:10
发布2020-12-24 10:22:10
1.8K0
举报
文章被收录于专栏:Java日常Java日常

一、前言

考虑安全性,项目部署的时候,配置文件中的数据库账户密码不能为明文,所以考虑加密方式

1、Jasypt加密

2、alibaba.druid 加密

这里我用的是jasypt,话不多说,开始配置

二、配置

1、maven引用

Jasypt引用的maven配置: 这里我用的是jasypt1.9.2的版本, 你们可以考虑更高版本配置的

代码语言:javascript
复制
		<dependency>
			<groupId>com.github.ulisesbocchio</groupId>
			<artifactId>jasypt-spring-boot-starter</artifactId>
			<version>2.1.0</version>
		</dependency>
		<dependency>
			<groupId>com.github.ulisesbocchio</groupId>
			<artifactId>jasypt-spring-boot</artifactId>
			<version>2.1.0</version>
		</dependency>
		<dependency>
			<groupId>org.jasypt</groupId>
			<artifactId>jasypt</artifactId>
			<version>1.9.2</version>
		</dependency>

另外jasypt 1.9.2 最好搭配的springboot版本是2.3.3以上

2、加密字符生成

找到maven本地仓库中的jasypt -1.9.2.jar 的目录,并打开cmd环境,执行以下命令:

代码语言:javascript
复制
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="123456" password=sb01 algorithm=PBEWithMD5AndDES

命令解析:

  • input的值就是原密码。
  • password的值就是参数jasypt.encryptor.password指定的值,即秘钥。这个随你自己定
  • algorithm 是加密方式,固定值

切记,命令前后不要有空格!,不然会报:java.security.NoSuchAlgorithmException: PBEWithMD5AndDES? SecretKeyFactory not available

正确执行结果如下:

3、使用

  1. 增加配置属性jasypt.encryptor.password = XXX,这是加密的秘钥,这里我定的是sb01;
  2. 所有明文密码替换为ENC(加密字符串),例如ENC(w+OxT6QlB18LAo9pR2t6zA==);

完成如上配置即可!

注意:

1、如果你项目的启动类上没有使用@SpringBootApplication@EnableAutoConfiguration注解,则需要在你的启动类

  • Application.java上增加注解@EnableEncryptableProperties;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
    • 1、Jasypt加密
    • 2、alibaba.druid 加密
  • 二、配置
    • 1、maven引用
    • 2、加密字符生成
    • 3、使用
    • 注意:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档