网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- 非对称加密就是加密的密钥和解密的密钥不是同一个,加密的密钥叫做公钥,可以公开告诉任何人,解密的密钥叫做私钥,只有自己知道。非对称加密不仅可以用来做加密,也可以用来做签名,使用场景还是非常多的,特别是在一些一对多的通信场景下,常见的加密算法是 RSA 。
可逆算法中的对称加密和非对称加密在 Spring Cloud Config 中都得到支持,下面我们就开始实战。
二、Config对称加密实战
1、下载加密包
Java 中提供了一套用于实现加密、密钥生成等功能的包 JCE(Java Cryptography Extension),这些包提供了对称、非对称、块和流密码的加密支持,但是默认的 JCE 是一个有限长度的 JCE ,我们需要到 Oracle 官网去下载一个不限长度的 JCE :JCE加密包官网下载
下载完成后,将压缩包解压后的文件拷贝到 JDK 的安装目录下: %JAVA_HOME%\jre\lib\security
2、配置秘钥
继续修改我们的config-server项目,在resource下创建一个bootstrap.yml文件,内容如下:
encrypt:
key: 123456
因为使用的是对称加密算法,将加密和解密的秘钥设置为123456。
3、启动验证
启动config-server项目,验证一下加密解密是否正常:
访问http://localhost:8005/encrypt/status,返回ok
再来访问http://localhost:8081/encrypt 加密接口:
再来访问http://localhost:8081/encrypt 解密接口:
一切正常,能够正常加密和解密。
4、项目实战
加密和解密功能正常之后,就要修改我们的配置文件内容了,将之前使用明文的地方,改成我们的密文。
继续修改我们的config-server项目,在repo文件夹下,修改客户端的配置文件configclient-dev.yml,增加如下内容:
app:
key: '{cipher}5ab3ce1502c40c276074f400aee0be0f6279d6a85bb9d8d315a78c7a91603dde58d4512a6bc9f6492a8eddd34dbeeac0'
注意密文前面增加{cipher}
,这样才能正常解密。
然后修改客户端config-client项目,增加一个访问接口:


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.youkuaiyun.com/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**