Spring Cloud配置中心服务端对称加密

雨点打透心脏的1/2处 2023-07-03 03:16 67阅读 0赞

spring boot版本:2.1.10.RELEASE
spring cloud版本:Greenwich.SR4
微服务搭建Spring Cloud配置中心【服务端】

为什么要加密

  首先我们要知道加密的是什么,加密的是配置文件的信息,上一篇文章我们都是使用明文的,但是如果是重要的信息,比如说是数据库的账号和密码就是十分重要的信息,不允许泄露的,一旦泄露会造成重大的损失。

PS:由于Spring Cloud 的bug,Dalston.SR4、Dalston.SR3、Dalston.SR2版本不能对配置文件加密,如果需要进行加密,请调整版本。

添加配置

  在配置服务端时,配置都是在 application.properties 中配置的,而且在spring boot 1.x中,下边的配置也是在 application.properties 配置的,但是在spring boot 2.x中,需要在 bookstrap.properties 中配置。

  1. #配置对称加密的key
  2. encrypt.key=jz

  在spring boot 2.x中,若将上边的配置加在了 application.properties ,访问 http://127.0.0.1:9100/encrypt/status 会显示

{“description”:“The encryption algorithm is not strong enough”,“status”:“INVALID”}

下载jar包

  在使用Spring Cloud Config的加密解密功能时,有一个必要的前提需要我们注意。为了启用该功能,我们需要在配置中心的运行环境中安装不限长度的JCE版本(Unlimited Strength Java Cryptography Extension)。虽然,JCE功能在JRE中自带,但是默认使用的是有长度限制的版本。我们可以从Oracle的官方网站中下载到它。

我的是jdk8,下载地址:
https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
在这里插入图片描述
下载解压后有三个文件
在这里插入图片描述
将两个jar包分别复制到 jdk的安装目录 jdk1.8.0_181\jre\lib\securityjre的安装目录 jre1.8.0_181\lib\security 中,如果已经存在这两个jar包,则将其 替换

相关操作

以上步骤做完后在浏览器访问 http://127.0.0.1:9100/encrypt/status 将会显示

{“status”:“OK”}

以下操作为 POST 请求:

加密:http://127.0.0.1:9100/encrypt
解密:http://127.0.0.1:9100/decrypt

可以自己写一个工具类,来获取解密或解密后的信息
在这里插入图片描述

在将加密后的信息写到配置文件中时,需要在前边添加 {cipher},例如:

  1. spring.datasource.username={ cipher}5bd5083c7eed334a041c9081bec235335b66592d4e2a3f43409f37daa5905deb

发表评论

表情:
评论列表 (有 0 条评论,67人围观)

还没有评论,来说两句吧...

相关阅读