微服务学习(第四篇)-config配置中心的配置加解密

首先提出疑问:比如在项目中非常隐私的东西也是非常关键的东西,

向数据源的username和password,以及服务器的地址,端口号不能以明文的方式放到git上面去的,需要加密起来。

1、在SpringCloud中有两种加密:对称加密,非对称加密

对称加密是可以解密的:有一个密钥来进行加解密:这就叫做对称加密算法:共用的是一个密钥,密钥就是同一把钥匙。

1.1、对称加密:<参考 SpringCloud官网>>

第一步:安装jce:jdk所提供的一种加密的测略。下载java 8JCE的就可以了。
在这里插入图片描述
第二步:把jce中的两个策略文件覆盖到jdk/jre/lib/security目录下面:

如何去实现加减密呢?

主要针对的是cloud-config来进行加解密。

2、重启config:看控制台在这里有加密和解密 encrypt/decrypt相应的路径,访问下:在这里插入图片描述在这里需要加一个对称加密的key,如果把这个key放到了application.yml文件中的话,还会报上面的错误,所以放到了bootstrap.yml文件中,这里是优先级的关系。可能在run运行的时候没有初始化这个配置的key,所以放到了bootstrap文件中。在这里插入图片描述然后重新访问下,有这个地址/encrypt,就可以进行加密这就可以进行加解密了。在这里插入图片描述比如对root加密,-d:是写入的密码,如下:在这里插入图片描述在这里插入图片描述那么如何去使用这个加密后的结果呢?用"{cipher}加密的结果"

在解密的时候用的是cipher它来解密的。‘这就是在有密钥的时候解密成root。然后推送,推送完这里就有对应的刷新,然后看config的后台:在这里插入图片描述在这里插入图片描述然后这时用配置中心的客户端去访问下:在这里插入图片描述总结:上面的就是对称的加解密的情况:用的是对称加密的算法

3、非对称加密:它有公钥,和私钥之分。非对称怎么实现:加密起来更复杂

扫描二维码关注公众号,回复: 10244579 查看本文章

其实用的是keytool这个工具来实现的,就是一个非对称加密的工具。参照SpringCloud官网非对称加密:

步骤如下:

3.1、通过keytool工具来进行加密,官网有一些参数,这里主要是用的RSA算法在这里插入图片描述3.2、然后生成一个server.jks的文件。在这里插入图片描述3.3、把这个文件拷贝到当前的config的resources的根目录的下面。在这里插入图片描述接下来配置config:

password,alias,secret不是写死的,在上面的步骤也可以自己去实现。在这里插入图片描述3.4、启动下config,用法都一样,也是用/encrypt来加密,然后对root进行加密和解密。在这里插入图片描述在这里插入图片描述3.5、在git上如何去使用呢,步骤如下:在这里插入图片描述然后,用配置中心的客户端cloud-provider去访问:访问也是成功的。在这里插入图片描述总结:非对称加密必须有server.jks和相应的配置才可以,用的是RSA算法。要不也不能解密和加密,这个比较安全。而对称加密是使用同一个密钥,才可以加解密。

未完待续,如果觉的哪里不好的话,请各位大佬指出缺点,互相学习。

如果想要代码的话可以加下qq群:797853299。

发布了126 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Brave_heart4pzj/article/details/104370190