趣文网 > 作文大全

源码配置解析:SpringBoot配置文件加密Jasypt

2020-12-06 19:05:01
相关推荐

前言

数据库密码直接明文写在配置中,对安全来说,是一个很大的挑战。一旦密码泄漏,将会带来很大的安全隐患。尤其在一些企业对安全性要求很高,因此我们就考虑如何对密码进行加密。本文着重介绍Jasypt对SpringBoot配置文件加密。

引入maven

com.github.ulisesbocchiojasypt-spring-boot-starter3.0.3

生成加密串

将连接数据库的用户名和密码进行加密

publicstaticvoidmain(String[] args) { BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); //加密所需的salt(盐) textEncryptor.setPassword("Bt%XJ^n1j8mz"); //要加密的数据(数据库的用户名或密码) String username = textEncryptor.encrypt("toutou"); String password = textEncryptor.encrypt("demo123456"); System.out.println("username:"+username); System.out.println("password:"+password); }

输出结果如下:

将用户名和密码加密对应生成的结果复制下来,后面会用到。

回到顶部

配置properties

将生成的加密串配置ENC(加密串)到application.properties中

#数据库相关配置

spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://127.0.0.1:3306/mytest?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8# 加密所需的salt(盐)#jasypt.encryptor.password=Bt%XJ^n1j8mz# 默认加密方式PBEWithMD5AndDES,可以更改为PBEWithMD5AndTripleDES#jasypt.encryptor.algorithm=PBEWithMD5AndDESspring.datasource.username=ENC(d/qt1SXvttpkiugIzTYkxg==)spring.datasource.password=ENC(rhT6VNpoRUkQYYOHAQ58V4/+fkj9CWfT)spring.datasource.max-idle=10spring.datasource.max-wait=10000spring.datasource.min-idle=5spring.datasource.initial-size=5

动态salt(盐)值

解密秘钥也在配置文件里头啊,别人拿到你服务器上面的部署代码后,不是很轻松的就可以解开这个密码了?

为了防止salt(盐)泄露,反解出密码.删除掉application.properties中的 jasypt.encryptor.password 可以在本地运行中加参数。如下图:

或是在项目部署的时候使用命令传入salt(盐)值。

打包时隐藏jasypt.encryptor.password,就需要打包时maven命令增加参数 clean package -Djasypt.encryptor.password=Bt%XJ^n1j8mz 。不加参数的话打包就会报错。如下图:

然后在部署时添加参数 Djasypt.encryptor.password 。

部署时完整命令: java -jar -Djasypt.encryptor.password=Bt%XJ^n1j8mz hello-0.0.1-SNAPSHOT.jar

回到顶部

总结

数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。它的核心是密码学。数据加密仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。安全重于泰山。

注:完整的源码已经上传至git,需要这份源码的,关注+转发后,私信“git”即可查看地址

书中自有黄金屋,书中自有颜如玉,真的永远永远不要忘记学习

今天的内容也是我在看书实践的过程中学到的,觉得还不错就写到自己的博客,分享给大家,说不定刚好你现在手头的业务需求需要呢?

然后我们来看一下这本书

目录

详细介绍

第1~6章:包含Spring 介绍、MVC、 视图技术、数据库访问技术

第7~9章:Spring Boot的高级特性,包括多环境部署、自动装配、单元测试等技术。

第10~17章:介绍当系统模块增加,性能和吞吐量要求增加时,如何平滑地用Spring Boot来实现分布式架构。

我最喜欢这本书的地方,就是他会从基础开始讲解

讲到源码操作实践

更有相应的架构图解析,方便更好理解

需要这份文档的,关注+转发后,私信“资料”即可查看获取方式

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

我的太阳作文 英语作文我的妈妈 语文会考作文 一件有趣的事的作文 二年级上册的作文 300字作文写人 作文生命 作文压题 作文冬天400字 作文友谊 作文300字六年级 成长作文记叙文 那些的日子作文 友情作文开头 作文写人300字 理想的作文素材 2017 高考作文 写心愿的作文 美丽的地方作文 英语作文300字 议论文英语作文 作文北京故宫 第一次600字作文 爱200字作文 乡情的作文 英语手抄报作文 什么说作文 冷作文 400字的优秀作文 英语邀请函作文