非对称加解密 Asymmetric encryption 对称加密和非对称加密的区别
考虑这样一个问题:一切的装备文件都存储在 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 对称加密和非对称加密的区别的更多相关文章
- SM2的非对称加解密java工具类
maven依赖 <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov- ...
- php rsa 非对称加解密类
<?php header("Content-Type: text/html;charset=utf-8"); /* 生成公钥.私钥对,私钥加密的内容能通过公钥解密(反过来亦可 ...
- Optimal asymmetric encryption padding 最优非对称加密填充(OAEP)
SubtleCrypto.decrypt() - Web APIs | MDN https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypt ...
- 网Js RSA加密,后端(Asp.Net)解码(非对称加解密)
前言 RSA加解密知识自行百度了解决一下 1.取得公钥与私钥方法 JSEncrypt Download 下载后将其发布成网站进入:http://127.0.0.1:3000/demo/index.ht ...
- Config非对称加解密
对称加密和非对称加密区别1. 对称加密对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密.对称加密只有一个秘钥,作为私钥. 常见的对称加密算法:DES,AES,3DES等等. 2. 非对称加密 ...
- 加解密算法二:非对称加解密及RSA算法的实现
加密和解密使用不同的密钥的一类加密算法.这类加密算法通常有两个密钥A和B,使用密钥A加密数据得到的密文,只有密钥B可以进行解密操作(即使密钥A也无法解密):相反,使用密钥B加密数据得到的密文,只有密钥 ...
- C#创建数字证书并导出为pfx,并使用pfx进行非对称加解密
本文源程序下载:http://download.csdn.net/source/2444494 我的项目当中,考虑到安全性,需要为每个客户端分发一个数字证书,同时使用数字证书中的公私钥来进行数据的加解 ...
- 【加解密】关于DES加密算法的JAVA加密代码及C#解密代码
JAVA加密: package webdomain; import java.security.Key; import java.security.spec.AlgorithmParameterSpe ...
- 加密算法--->对称加密与非对称加密算举例说明
目前主流的加密方式有:(对称加密)AES.DES (非对称加密)RSA.DSA 对称加密例子:des对称加密 des对称加密,对称加密,是一种比较传统的加密方式,其加密运算.解密运算使用 ...
随机推荐
- SYCOJ570传纸条
题目-传纸条 (shiyancang.cn) 算法(线性DP) O(n3)O(n3)首先考虑路径有交集该如何处理.可以发现交集中的格子一定在每条路径的相同步数处.因此可以让两个人同时从起点出发,每次同 ...
- 学习Flutter从0开始
一. 认识Flutter 1.1. 什么是Flutter 先看看官方的解释: Flutter is Google's UI toolkit for building beautiful, native ...
- 解析HetuEngine实现On Yarn原理
摘要:本文介绍HetuEngine实现On Yarn的原理,通过阅读本文,读者可以了解HetuEngine如何在资源使用方面融入Hadoop生态体系. 本文分享自华为云社区<MRS HetuEn ...
- Java实现抽奖模块的相关分享
Java实现抽奖模块的相关分享 最近进行的项目中,有个抽奖的需求,今天就把相关代码给大家分享一下. 一.DAO层 /** * 获取奖品列表 * @param systemVersion 手机系统版本( ...
- MATLAB中回归模型
(1).一元线性回归:数学模型定义 模型参数估计 检验.预测及控制 1.回归模型: 可线性化的一元非线性回归 (2).多元线性回归:数学模型定义 模型参数估计 多元线性回归中检 ...
- Java传递变量和对象的区别
传递对象 public class Demo03 { //引用传递:(实际上还是值传递)对于引用数据类型来说,传递的则是地址的副本(对象的地址).但由于地址副本和原来的类似,因此传递过去后形参也只想同 ...
- Linux下进程线程,Nignx与php-fpm的进程线程方式
1.进程与线程区别 进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间.内存等)的基本单位. 线程是进程的一个执行流, ...
- MySQL 5.7主从搭建(同一台机器)
主从复制原理:复制是 MySQL 的一项功能,允许服务器将更改从一个实例复制到另一个实例. 1)主服务器将所有数据和结构更改记录到二进制日志中. 2)从属服务器从主服务器请求该二进制日志并在本地应用其 ...
- Charles和mitmproxy代理设置
1.Charles安装: 1. windows 安装证书 2. 3. 4. 5 pc端设置: Android 手机上设置代理: 先查看pc 端的ip: 2.模拟器进入wifi,按住wifi 3. ...
- CF1278E Tests for problem D
不难发现为了逐步确定每个点于其相邻点的相交情况,那么我们只可能有两种逐步构造的方式:从根开始往下构造,以及从子树往根上构造.经过很久的尝试,我发现从根往下构造是一件很困难的事情,于是我们可以反过来考虑 ...