考虑这样一个问题:一切的装备文件都存储在 Git 长途库房,RAR密码破解装备文件中的一些信息又是比较灵敏的。所以,我们需求对这些灵敏信息进行加密处理。首要的加密方法分为两种:一种是同享密钥加 密(对称密钥加密),一种是公开密钥加密(非对称密钥加密)。 1|1对称加解密 Symmetric encryption 对称加密是最快速、最简略的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。 查看加密环境 点击链接观看:查看加密环境视频(获取更多请重视大众号「哈喽沃德先生」) 版别问题 拜访 Config Server:http://localhost:8888/encrypt/status 查看成果假如是:{"description":"No key was installed for encryption service","status":"NO_KEY"} 阐明没有为加密服务装置密钥,也阐明你运用的是较低的 JDK 版别。 比较简略的解决办法:更换高版别 JDK,比如运用最新版的 LTS 版别 JDK-11.0.6。 复杂的解决办法:从 Oracle 官网下载对应 JCE,下载链接:https://www.oracle.com/java/technologies/javase-jce-all-downloads.html 下图赤色框中内容已经满足阐明原因:JDK 9 以及更高版别已顺便策略文件,并在默认情况下启用。 假如你的当时环境有必要运用低版别 JDK,那么请下载对应 JCE 压缩包,下载解压后把 local_policy.jar 和 US_export_policy.jar 文件装置到需求装置 JCE 机器上的 JDK 或 JRE 的 security 目 录下即可。 装备问题 查看成果假如是:{"description":"The encryption algorithm is not strong enough","status":"INVALID"} 阐明服务端未装备加密。 Config Server 创立装备文件,留意有必要叫 bootstrap.yml,装备密钥信息即可。 # 密钥 encrypt: key: example 重启 Config Server 拜访:http://localhost:8888/encrypt/status 成果如下: 加解密演示 点击链接观看:对称加解密视频(获取更多请重视大众号「哈喽沃德先生」) 装备中心服务端 运用 curl 指令拜访 /encrypt 端点对特点值 root 进行加密。反向操作 /decrypt 可解密。 curl http://localhost:8888/encrypt -d root 加密成果:bfb5cf8d7cab63e4b770b76d4e96c3a57d40f7c9df13612cb3134e2f7ed26123 解密 Git 库房 把加密后的数据更新到 Git 长途库房的装备文件中。值得留意的是需求在加密成果前增加 {cipher} 串,假如长途特点源包括加密的内容(以最初的值{cipher}),则将其解密,然后再经过HTTP发 送给客户端。 装备中心客户端 Config Client 操控层增加获取装备信息代码。 package com.example.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RefreshScope @RestController public class ConfigController { @Value("${name}") private String name; @Value("${password}") private String password; @GetMapping("/name") public String getName() { return name; } @GetMapping("/password") public String getPassword() { return password; } } 修正 Config Client 装备文件,重启测验。 spring: cloud: config: name: order-service # 装备文件名称,对应 git 库房中装备文件前半部分 label: master # git 分支 profile: prod # 指定环境 discovery: enabled: true # 敞开 service-id: config-server # 指定装备中心服务端的 service-id # 衡量目标监控与健康查看 management: endpoints: web: base-path: /actuator # 拜访端点根途径,默以为 /actuator exposure: include: '*' # 需求敞开的端点,这儿首要用到的是 refresh 这个端点 #exclude: # 不需求敞开的端点 拜访:http://localhost:9091/password 回来解密后的成果。 1|2非对称加解密 Asymmetric encryption 对称加密和非对称加密的区别 对称加密算法在加密和解密时运用的是同一个密钥。只需拿到密钥,任何人都能破jie。 非对称加密算法需求两个密钥来进行加密和解密,这两个密钥分别是公开密钥(public key 简称公钥)和私有密钥(private key 简称私钥)。在传输过程中,即便攻击者截获了传输的密文,并得 到了公钥,也无法破 jie密文,由于运用专用密钥才能破jie密文。 图片取自图解HTTP一书。 Java-keytool 运用阐明 Keytool 用来办理私钥库房(keystore)和与之相关的X.509证书链(用以验证与私钥对应的公钥),也能够用来办理其他信赖实体。 默认我们都装备了 Java 的环境变量,翻开 CMD 窗口运转以下指令。 # 生成名为 config.keystore 的 keystore 文件,别名为 config,加密算法类型运用 RSA,密钥库口令和密钥口令均为:config keytool -genkeypair -keystore config.keystore -alias config -keyalg RSA -keypass config -storepass config 此刻在我的 D 盘下会生成一个 config.keystore 文件。 加解密演示 点击链接观看:非对称加解密视频(获取更多请重视大众号「哈喽沃德先生」) 装备中心服务端 将 config.keystore 文件增加至 Config Server 项目 resources 目录中。 创立 bootstrap.yml 增加非对称加解密装备。留意:值要跟 CMD 里输入的值对应否则会出错。 # 非对称加解密 encrypt: key-store: location: classpath:config.keystore # keystore 文件存储途径 alias: config # 密钥对别名 password: config # storepass 密钥库房 secret: config # keypass 用来保护所生成密钥对中的私钥 pom.xml 增加防止 maven 过滤文件的装备。 src/main/resourcessrc/main/java**/*.xml**/*.properties**/*.tld**/*.keystorefalse查看加密环境,拜访:http://localhost:8889/encrypt/status 成果如下: 运用 curl 指令拜访 /encrypt 端点对特点值 root 进行加密。反向操作 /decrypt 可解密。 curl http://localhost:8889/encrypt -d root 加密成果: 解密 Git 库房 把加密后的数据更新到 Git 长途库房的装备文件中。值得留意的是需求在加密成果前增加 {cipher} 串,假如长途特点源包括加密的内容(以最初的值{cipher}),则将其解密,然后再经过HTTP发 送给客户端。 装备中心客户端 Config Client 装备文件如下。 spring: cloud: config: name: order-service # 装备文件名称,对应 git 库房中装备文件前半部分 label: master # git 分支 profile: prod # 指定环境 discovery: enabled: true # 敞开 service-id: config-server # 指定装备中心服务端的 service-id # 衡量目标监控与健康查看 management: endpoints: web: base-path: /actuator # 拜访端点根途径,默以为 /actuator exposure: include: '*' # 需求敞开的端点,这儿首要用到的是 refresh 这个端点 #exclude: # 不需求敞开的端点 拜访:http://localhost:9091/password 回来解密后的成果。 2|0装备中心用户安全认证 折腾了大半天终于给我们把加解密讲完了,但是假如你够细心,你会发现此刻的 Config Server 谁都能够拜访,而且直接经过 Config Server 拜访装备文件信息,加密的内容就会解密后直接显示在 浏览器中,这岂不是又白折腾了?当然不是,我们只需求增加用户安全认证即可。 2|1增加依靠 Config Server 增加 security 依靠。org.springframework.bootspring-boot-starter-security2|2装备文件 Config Server 的 application.yml 增加安全认证装备。 spring: # 安全认证 security: user: name: user password: 123456 Config Client 的 bootstrap.yml 增加安全认证装备。 spring: cloud: config: # 安全认证 username: user password: 123456 2|3测验 服务端 Config Server 拜访:http://localhost:8889/order-service-prod.yml 被重定向至登录页。rar破解 输入用户名和暗码后,成果如下: 客户端 Config Client 拜访:http://localhost:9091/password 成果如下: 至此 Config 装备中心一切的知识点就讲解结束了。 本文选用 知识同享「署名-非商业性运用-制止演绎 4.0 世界」答应协议。 我们能够经过 分类 查看更多关于 Spring Cloud 的文章。 您的点赞和转发是对我最大的支撑。 扫码重视 哈喽沃德先生「文档 + 视频」每篇文章都配有专门视频讲解,学习更轻松噢 ~

转载请保留https://blog.csdn.net/dafengit/article/details/106073709

非对称加解密 Asymmetric encryption 对称加密和非对称加密的区别的更多相关文章

  1. SM2的非对称加解密java工具类

    maven依赖 <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov- ...

  2. php rsa 非对称加解密类

    <?php header("Content-Type: text/html;charset=utf-8"); /* 生成公钥.私钥对,私钥加密的内容能通过公钥解密(反过来亦可 ...

  3. Optimal asymmetric encryption padding 最优非对称加密填充(OAEP)

    SubtleCrypto.decrypt() - Web APIs | MDN https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypt ...

  4. 网Js RSA加密,后端(Asp.Net)解码(非对称加解密)

    前言 RSA加解密知识自行百度了解决一下 1.取得公钥与私钥方法 JSEncrypt Download 下载后将其发布成网站进入:http://127.0.0.1:3000/demo/index.ht ...

  5. Config非对称加解密

    对称加密和非对称加密区别1. 对称加密对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密.对称加密只有一个秘钥,作为私钥. 常见的对称加密算法:DES,AES,3DES等等. 2. 非对称加密 ...

  6. 加解密算法二:非对称加解密及RSA算法的实现

    加密和解密使用不同的密钥的一类加密算法.这类加密算法通常有两个密钥A和B,使用密钥A加密数据得到的密文,只有密钥B可以进行解密操作(即使密钥A也无法解密):相反,使用密钥B加密数据得到的密文,只有密钥 ...

  7. C#创建数字证书并导出为pfx,并使用pfx进行非对称加解密

    本文源程序下载:http://download.csdn.net/source/2444494 我的项目当中,考虑到安全性,需要为每个客户端分发一个数字证书,同时使用数字证书中的公私钥来进行数据的加解 ...

  8. 【加解密】关于DES加密算法的JAVA加密代码及C#解密代码

    JAVA加密: package webdomain; import java.security.Key; import java.security.spec.AlgorithmParameterSpe ...

  9. 加密算法--->对称加密与非对称加密算举例说明

    目前主流的加密方式有:(对称加密)AES.DES        (非对称加密)RSA.DSA 对称加密例子:des对称加密 des对称加密,对称加密,是一种比较传统的加密方式,其加密运算.解密运算使用 ...

随机推荐

  1. BootStrap 是什么东西?

    Bootstrap Bootstrap 能很快速搭建一整套页面.是最受欢迎的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目.所有设备都可以适配.所有项目都适用.1 ...

  2. jmu-ds-舞伴问题

    假设在周末舞会上,男士和女士们分别进入舞厅,各自排成一队.跳舞开始,依次从男队和女队队头各出一人配成舞伴,若两队初始人数不同,则较长那一队未配对者等待下一轮舞曲.现要求写一算法模拟上述舞伴配对问题. ...

  3. leetcode 233. 数字 1 的个数

    问题描述 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数. 示例: 输入: 13 输出: 6 解释: 数字 1 出现在以下数字中: 1, 10, 11, 12, 13 . 问 ...

  4. [开发笔记usbTOcan]PyUSB访问设备

    前面的几个章节的介绍,基本把usbTOcan的底层代码设计好,现在需要介绍PC端的PyUSB进行简单的测试. 在文章开始之前,需要简单的介绍一下整个系统. 0 | 部署 这里使用了两块TM4C123G ...

  5. docker 修改容器env配置

    docker 修改容器env配置 场景:修改zabbix数据库密码 zabbix容器构成: 数据库:zabbix-mysql server端:zabbix-server-mysql web端:zabb ...

  6. tomcat容器启动失败疑难问题解决方案

    严重: 子容器启动失败java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 初始化组件[or ...

  7. 【刷题-LeetCode】222. Count Complete Tree Nodes

    Count Complete Tree Nodes Given a complete binary tree, count the number of nodes. Note: Definition ...

  8. mongo用户认证

    mongo@rayos:/opt/mongodb$ mongo --port 28017 MongoDB shell version v4.0.13 connecting to: mongodb:// ...

  9. kubernetes sticky session 配置

    kubernetes中经常需要配置sticky session,此时需要根据你使用的ingress controller来设置了. 1.Nginx Ingress apiVersion: extens ...

  10. Python初学笔记之可变类型、不可变类型

    python中 可变类型: 列表 list 字典 dict 不可变类型: 数字型:int.float.complex.bool.long 字符型 str 元组 tuple id(i):通过id查看变量 ...