考虑这样一个问题:一切的装备文件都存储在 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. kafka学习笔记(三)kafka的使用技巧

    概述 上一篇随笔主要介绍了kafka的基本使用包括集群参数,生产者基本使用,consumer基本使用,现在来介绍一下kafka的使用技巧. 分区机制 我们在使用 Apache Kafka 生产和消费消 ...

  2. redis的bind误区

    对于Redis中bind的正确的理解是:bind:是绑定本机的IP地址,(准确的是:本机的网卡对应的IP地址,每一个网卡都有一个IP地址),而不是redis允许来自其他计算机的IP地址.如果指定了bi ...

  3. Redis可视化内存分析工具--RDR:查看Redis中key的占用情况

    RDR(redis datareveal)是一个解析redis rdbfile的工具.与redis-rdb-tools 相比,RDR 是由 golang 实现的,速度要快得多(5GB rdbfile ...

  4. Java 集合详解 | 一篇文章解决Java 三大集合

    更好阅读体验:Java 集合详解 | 一篇文章搞定Java 三大集合 好看的皮囊像是一个个容器,有趣的灵魂像是容器里的数据.接下来讲解Java集合数据容器. 文章篇幅有点长,还请耐心阅读.如只是为了解 ...

  5. 动态代理及java演示

    代理模式的理解     首先代理二字的含义,程序中代理与字面意思的代理并无区别.比如现实生活中办理车辆审车,我们经常会听说花钱找代理(又称黄牛)办手续,即办手续这个事,不是我们亲自执行,而是通过代理( ...

  6. 小程序onShareAppMessage有点迷

    小程序遇到的问题 起因 目前项目需求是分享时携带参数去进行裂变,但是在查看微信文档后发现有onShareAppMessage这个页面处理事件可以使用.事件可以使用return一个Object,用于自定 ...

  7. Hadoop 代码实现文件上传

    本项目主要实现Windows下利用代码实现Hadoop中文件上传至HDFS 实现上传文本文件中单词个数的计数 1.项目结构 2.相关代码 CopyFromLocalFile 1 package com ...

  8. vue 项目npm run dev ip访问

    webpack npm run dev 不能通过ip访问 只能通过localhost访问 解决方法如下: 修改vue-cli: config/index.js 文件 把文件中 host 的值,改成 i ...

  9. Open虚拟专用网络

    目录 一:OpenVPN虚拟网络专用 1.简介: 2.OpenVPN的作用 3.远程访问VPN服务 4.OpenVPN两种类型的VPN体系结构 5.全面解析OpenVPN执行流程 6.Openvpn定 ...

  10. http中的8种请求介绍

    HTTP协议的8种请求类型介绍 HTTP协议中共定义了八种方法或者叫"动作"来表明对Request-URI指定的资源的不同操作方式,具体介绍如下: OPTIONS:返回服务器针对特 ...