https网络编程——SSL的加密和解密过程

2023-11-01

参考:SSL的加密和解密过程
地址:https://qingmu.blog.csdn.net/article/details/108214105?spm=1001.2014.3001.5502

现在的加密/解密技术主要有三种:对称加密,非对称加密,和单向加密

这三种加密解密技术的组合就是现在电子商务的基础,它们三个有各自最适合的领域,而且所要完成的功能也是不同的,大家都知道,只要我们连上互联网,那么我们就相当于大门洞开,我们的一些隐私,跟其他人对话内容等都有可能会被人窃听,最常见的比如man in the middle(中间人),它主要是因为双方身份无法验证的时候回话被劫持造成的,就是说通信双方都以为是在跟对方交流,其实内容都可能已经被这个“中间人”修改过,一些重要的信息也被这个“中间人”所获得,这对于现在的电子商务来说是致命的,所有我们必须找到一种解决方案来解决这个问题

对称加密:指的是加密方和解密方使用的是同一个密钥
优点:加密解密的速度很快
缺点:如果两个从未通信过的用户要进行通信的时候,该如何把解密的密钥传输给对方呢(密钥仍然要在网络上传输,所以密钥还是可能会被“中间人”截获),这是对称加密最大的缺点;
常见的对称加密算法有:
DES:使用56位的密钥,2000年的时候被人破解了,所以现在基本不再使用
AES:高级加密标准,可以使用128,129,256三种长度密钥
其他的还有blowfish,Twofish和RC6,IDEA(商业算法),CAST5等

非对称加密:非对称加密方式解决了对称加密的缺陷,它的加密和解密密钥是不同的,比如对一组数字加密,我们可以用公钥对其加密,然后我们想要将其还原,就必须用私钥进行解密,公钥和私钥是配对使用的,常见的非对称加密算法有:
RSA:既可以用来加密解密,又可以用来实现用户认证
DSA:只能用来加密解密,所以使用范围没有RSA广
非对称加密长度通常有512,1024,2048,4096位,最常用的就是2048位,长度固然可以增加安全性但是需要花费很长时间来进行加密/解密,和对称加密相比,加密/解密的时间差不多是对称加密的1000倍,所以我们通常用其作为用户认证,用对称加密来实现数据的加密/解密

单项加密:单向加密就是用来计算一段数据的特征码的,为了防止用户通过“暴力破解”的方式解密,所以单向加密一般具有“雪崩效应”就是说:只要被加密内容有一点点的不同,加密所得结果就会有很大的变化。单项加密还有一个特点就是无论被加密的内容多长/短,加密的结果(就是提取特征码)是定长的,用途:用于验证数据的完整性,常用的单项加密算法
MD5:这种加密算法固定长度为128位
SHA1:这种加密算法固定长度是160位

加密解密的流程图

在这里插入图片描述

私钥: 随机数+Key值+公钥

BOB和ALICE通信阶段:

黑框A:表示要传输的数据

黑框B:表示黑框A经过单向加密后的特征码,这段特征码同时运用了非对称加密,具体过程是用BOB的私钥加密,传输给ALICE,只要到达后ALICE能解密,表明对方确实是BOB。这一过程同时起到了用户认证和数据完整性的校验。黑框B又称为数字签名

红框A: 这一阶段会生成一段很长的随机数(密钥)然后配合对称加密算法对黑框A和黑框B加密

红框B:这一阶段是用ALICE的公钥加密这串随机数(对称加密阶段的密钥),ALICE接受到数据后如果能用自己私钥解密,那就证明接受者确实ALICE

加密过程:
第一步:用单向加密算法提取数据(黑框A)的特征值
第二步:用自己的私钥加密这段特征值形成黑框B
第三步:用对称加密算法,对黑框A和黑框B来加密,得到红框A
第四步:用ALICE的公钥来加密第三步所用的密钥,得到红框B

解密过程:
第一步:ALICE用自己的私钥解密红框B得到对称加密的密钥
第二步:用这个密钥解密红框A内容
第三步:用BOB的公钥解密黑框B,如果能成功,说明发送方确实是BOB,这就完成了身份验证(解密后会得到一串数据的特征值)
第四步:用同样的单项加密算法来对这段数据提取特征值,如果和第三步的特征值一样,说明这段数据是完整的,这就完成了数据完整性的校验

进行完上述内容厉害的读者会发现一个问题就是BOB和ALICE如何获得对方的公钥,或者说如何证明获得的公钥就是对方,这就需要引入另一方证书颁发机构CA,下面是对证书颁发机构跟BOB/ALICE之间的解释

黑框C:代表要颁发给BOB/ALICE的公钥,组织,地址等信息

黑框D:是对黑框C进行单向加密后得到的数字签名,然后用自己的公钥对其加密,传输给BOB和ALICE,拿着这个证书颁发机构的公钥(这些证书颁发机构的公钥一般已经被microsoft事先放在windows里面,当然其他操作系统也是一样的)的BOB和ALICE如果能对这个证书进行解密,说明这个证书颁发机构不是冒充的

红框E:表示颁发给BOB和ALICE的证书

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

https网络编程——SSL的加密和解密过程 的相关文章

  • 仅适用于安全页面的安全回形针 URL

    我正在尝试找到使回形针网址安全的最佳方法 但仅限于安全页面 例如 显示存储在 S3 中的图像的主页是http mydomain com http mydomain com图像网址是http s3 amazonaws com mydomain
  • 无对等证书例外 - Volley 和具有自签名证书的 Android

    我正在尝试让我的应用程序通过 https 与我的服务器通信 由于我不想付费让受信任的 CA 签署我的服务器证书 解决方案是使用自签名证书 因此 我创建了 caconfig cnf 如下所示 ca default ca CA default
  • 如何使用 node.js 请求模块使用我自己的证书进行 SSL 调用?

    我正在使用 node js 和此请求模块对另一台服务器进行 HTTP 调用 https github com mikeal request https github com mikeal request 效果很好 我现在需要修改此代码以使用
  • Tomcat:具有强密码的 TLSv1.2 不起作用

    我安装了Tomcat 7 配置了对 TLSv1 2 的支持在端口 8443 上 我的连接器配置 协议 org apache coyote http11 Http11NioProtocol SSLEnabled true 方案 https 安
  • 使用 https 的 Java Jersey RESTful Web 服务

    我是 Java EE 的新手 正在开发一个 RESTful API 其中每个 API 调用用户都会发送编码的凭据 我的问题是如何通过默认的 http 实现 https 协议并确保我的连接安全 我正在使用 Jersey Restful Web
  • 使用 SSL 的 Xamarin.Forms Image.Source

    我正在使用一个在线商店来存储通过我们的应用程序上传的用户图像 并受 SSL 保护 上传工作一切顺利 因为我使用的是带有附加证书的 WebClient 但是当我尝试使用 Xamarin Forms Image 组件时 例如将源设置为 http
  • 使用 TLS/SSL 保护 Cassandra 通信

    我们希望保护 Cassandra 免受中间人攻击 有没有办法配置 Cassandra 使客户端 服务器和服务器 服务器 复制 通信采用 SSL 加密 谢谢 简短的回答 不 对于客户端 服务器 节俭 151 https issues apac
  • 如何在Wamp服务器中启用SSL?

    我尝试在网上搜索它 但我很困惑 我没有得到任何澄清 逐步教程 http blog facilelogin com 2008 07 enabling ssl on wamp html 从链接复制 在 WAMP 上启用 SSL 本分步指南介绍了
  • 通过 HTTPS 加载页面但请求不安全的 XMLHttpRequest 端点

    我有一个页面 上面有一些 D3 javascript 该页面位于 HTTPS 网站内 但证书是自签名的 当我加载页面时 我的 D3 可视化效果不显示 并且出现错误 混合内容 页面位于 https integration jsite com
  • OpenSSL DH 密钥太小错误

    我正在尝试使用简单的 PERL 脚本连接到封闭的服务器 空调 usr bin perl use 5 10 1 use warnings use strict use IO Socket SSL use IO Socket SSL qw de
  • ca 证书 Mac OS X

    我需要在emacs 上安装offlineimap 和mu4e 问题是配置 当我运行 Offlineimap 时 我得到 OfflineIMAP 6 5 5 Licensed under the GNU GPL v2 v2 or any la
  • 是否可以使用流上下文在 PHP 下使用 FTPS?

    我了解到使用ftpsPHP for Windows 下的 ftp ssl connect 很困难 您被要求进入构建自己的二进制文件以包括 Open SSL 的漫长旅程 我找到了以下建议phpseclib http phpseclib sou
  • 如何在 https 连接上检索 cookie?

    我试图将 cookie 保存在使用 SSL 但始终返回 NULL 的 URL 中 private Map
  • Django HTTPS 和 HTTP 会话

    我使用 Django 1 1 1 和 ssl 重定向中间件 通过 HTTPS 创建的会话数据 身份验证等 在站点的 HTTP 部分中不可用 无需将整个站点设置为 HTTPS 即可使其可用的最佳方法是什么 这是设计使然 您无法轻易更改 当通过
  • Apache 2.4.9 在启用 ssl 模块并设置 ssl 证书后失败

    Apache 在尝试设置 ssl 证书后抛出以下错误 ssl emerg pid 30907 AH02572 Failed to configure at least one certificate and key for localhos
  • .NET-MVC - 通过 SSL 重写 URL + 某些 URL?

    我有一个运行 IIS 6 NET MVC 和单个域名的网络服务器 该网站使用 URL 重写来生成如下 URL 域名 com controller action 我愿意强行一 1 个控制器 to use SSL 其他的应该无需 SSL 即可工
  • 在linux上安装python ssl模块,无需重新编译

    是否可以在已经安装了 OpenSSL 的 Linux 机器上安装 python 的 SSL 模块 而无需重新编译 python 我希望它就像复制几个文件并将它们包含在库路径中一样简单 Python版本是2 4 3 谢谢 是否可以在已经安装了
  • 从 HTTPS 重定向到 HTTP 的安全问题?

    我在一些博客上读过 抱歉没有提及参考资料 但我找不到了 如果您将用户从 https 页面重定向到 http 页面 您将失去保护网站安全的所有工作 那么 有人可以向我解释一下在以下情况下我是对还是错 在登录页面上使用 https 然后使用 h
  • 使用 IIS 7.5 的特定页面的 HTTPS URL 重写规则

    我正在尝试在 IIS 7 5 中进行 URL 重写 以重定向到 HTTPS 以获得 单页 域的其余部分应保留 HTTP 为此 我正在编辑 Web config 文件 有人可以告诉我我在做什么吗 以下规则错误
  • 无法对 Elastic Beanstalk AWS 上运行 ASP.NET 的网站强制使用 HTTPS(使用经典负载均衡器)

    这样我终于能够成功创建一个https网站了 它只是运行模板 ASP NET Web 项目 我有一个证书 并且该证书已添加到 AWS 中的 ELB 弹性负载均衡器 经典 中 我的环境可以浏览到https www mvc cloudy skie

随机推荐

  • 【从零开始学c++】———模拟实现string类(常用接口的实现)

    string 1 前言 2 string类常用接口实现 3 总结 1 前言 之前学到了string类常用接口的后 我很好奇string类在底层是怎样实现的 在由之前学习到c 有关的之后 所以我打算模拟实现一下string类常用的接口 以便加
  • Allegro学习笔记

    1 用Allegro进行PCB设计 文件的后缀名是 brd 2 双击 brd无法打开该文件 必须在Allegro里面File Open中进行打开
  • 《代码大全2》第5章 软件构建中的设计

    目录 前言 本章主题 5 1 设计中的挑战 5 1 1 设计在软件构建中所处的角色 5 1 2 设计是一个险恶的问题 5 2 关键的设计概念 5 2 1 软件的首要技术使命 管理复杂度 1 管理复杂度的重要性 5 2 2 理想的设计特征 5
  • threeJs着色器ShaderMaterial以及统一着色语言GLSL语法基本介绍

    一 着色器材质ShaderMaterial的基本使用 废话不多讲先来看案例 console log 着色器入门 引入three js import as THREE from three 引入OrbitControls控制器 import
  • RuntimeError: cuDNN error: CUDNN_STATUS_NOT_SUPPORTED.

    原因 batch size太大了 说起来我也觉得挺奇怪 bs太大为什么不报错out of memory而是报了这么一个牛头不对马嘴的错误 不过因为我这个环境已经跑了很多模型都没有问题 因此不是cudnn和cuda版本对应问题 将bs调小一半
  • 常用Linux发行版镜像源配置

    最近研究Linux 试了一些Linux发行版 但是大多数发行版的软件源速度都不是很理想 所以我这里干脆做了一个收集 把我用过的一些常用发行版的软件源设置方法做个总结 大家也可以做个参考 Ubuntu 18 04 18 04是目前Ubuntu
  • unity Animation和Animator动画的暂停和继续播放

    1 利用Animator组件实现暂停和继续播放自己创建的Animation动画 需要按以下顺序操作 在需要播放动画的物体身上添加Animator组件 在Project视图下创建AnimatorController并拖入到Animator组件
  • 【vue3+ts+ant】a-table的column绑定点击事件的两种方式

    需求 给标题这一列的数据绑定点击事件 实现交互 第一种 在dom里面插入标签 并绑定点击事件
  • 【牛客网 - 华为机试 - HJ85 最长回文子串】

    描述 给定一个仅包含小写字母的字符串 求它的最长回文子串的长度 所谓回文串 指左右对称的字符串 所谓子串 指一个字符串删掉其部分前缀和后缀 也可以不删 的字符串 数据范围 字符串长度 进阶 时间复杂度 O n O n 空间复杂度 O n O
  • Java编码规范

    目录 1 代码规范 2 1 1 注释规范 2 1 1 1 页头注释
  • redux之react-redux实现原理

    Redux Flow 一 介绍 一 redux 1 reducer念 reducer就是一个纯函数 接收旧的state和action 返回新的state previousState action gt newState 名字由来 Array
  • Java 实现下载文件工具类

    package com liunian utils import lombok SneakyThrows import javax servlet ServletOutputStream import javax servlet http
  • 力扣每日一题——四数相加Ⅱ

    题目链接 class Solution public 将四个组分为两组 即时间复杂度n 4 gt 2 n 2 int fourSumCount vector
  • 服务器域名修改,服务器修改域名

    服务器修改域名 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 您可以通过华为云的域名注册服务管理您的域名 如表1所示 服
  • 无法连接imessages信息服务器,如何屏蔽imessage广告 iPhone怎么屏蔽iMessages广告【详解】...

    很多苹果设备用户都会用到iMessages 苹果设备之间聊天很方便 不过iMessages广告却是一个神烦的存在 怎么屏蔽iMessages广告 下面IT百科小编和大家分享几种屏蔽iMessages广告的方法 大家可以根据自己的使用习惯选择
  • QWidget的背景颜色和背景图片的设置

    首先设置autoFillBackground属性为真 然后定义一个QPalette对象 设置QPalette对象的背景属性 颜色或图片 最后设置QWidget对象的Palette 实例 QWidget widget new QWidget
  • web基础学习笔记(九)之节点常用属性和方法

    节点常用属性和方法 getElementsByTagName 获取当前节点的指定标签名孩子节点 gappendChild oChildNode 添加一个子节点 oChildNode是要添加的孩子节点 属性 childNodes 获取当前节点
  • Docker---本地镜像发布到阿里云

    本地镜像发布到阿里云 1 准备前提 2 以当前运行运行的mycentos运行实例 以它为模板commit一个新的mycentos镜像 3 将本地镜像推送到阿里云 3 1 本地镜像素材原型 3 2 登录阿里云开发者平台创建镜像仓库 3 2 1
  • jQuery基本筛选器

    3 jQuery基本筛选器 3 1 first 获取第一个元素 用法 ul li list item 1 li li list item 2 li li list item 3 li li list item 4 li li list it
  • https网络编程——SSL的加密和解密过程

    参考 SSL的加密和解密过程 地址 https qingmu blog csdn net article details 108214105 spm 1001 2014 3001 5502 目录 现在的加密 解密技术主要有三种 对称加密 非