sprincloud-config的配置中心加密

使用前提

在使用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

注意下载和自己jdk一致的版本

README.txt
local_policy.jar
US_export_policy.jar

我们需要将local_policy.jar和US_export_policy.jar两个文件复制到C:\Program Files\Java\jdk1.8.0_181\jre\lib\security(也就是本地jdk的安装目录)目录下,覆盖原来的默认内容。到这里,加密解密的准备工作就完成了。

可以尝试用postman或者浏览器通过GET请求访 http://localhost:8000/encrypt/status 端点,我们将得到如下内容:

{
  "description": "No key was installed for encryption service",
  "status": "NO_KEY"
}

该返回说明当前配置中心的加密功能还不能使用,因为没有为加密服务配置对应的密钥。

我们可以通过在s服务端的resources目录下新建一个bootstrap.properties文件,文件内容如下:

encrypt.key=kye

加入上述配置信息后,重启配置中心,再访问 http://localhost:8000/encrypt/status 端点,我们将得到如下内容:

{
  "status": "OK"
}

此时,我们配置中心的加密解密功能就已经可以使用了,不妨尝试访问一下/encrypt和/decrypt端点来进行加密和解密的功能。注意,这两个端点都是POST请求:

例如:
用postman进行post请求访问如下链接:localhost:8000/encrypt

body里填写需要加密的字符串:0&13MHCWT6U3L1j^EriRuHiZSxA*6BNs
返回结果里会有加密后的字符串:9cc84423f6d857a3a45b9dfa86ca3db788031bbb95237e9ec253d4bfd4a22a4bfecad3e307076c8c127321c5d975efff3c50965e8c4e1a821af20ebe025f2d87
用postman进行post请求访问如下链接:localhost:8000/decrypt
body里填写需要加密的字符串:9cc84423f6d857a3a45b9dfa86ca3db788031bbb95237e9ec253d4bfd4a22a4bfecad3e307076c8c127321c5d975efff3c50965e8c4e1a821af20ebe025f2d87
返回结果里会有加密后的字符串:0&13MHCWT6U3L1j^EriRuHiZSxA*6BNs

这里,我们通过配置encrypt.key参数来指定密钥的实现方式采用了对称性加密。这种方式实现比较简单,只需要配置一个参数即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

T-OPEN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值