当前位置: 首页 > news >正文

HTTPS是什么?原理是什么?用公钥加密为什么不能用公钥解密?

HTTPS(HyperText Transfer Protocol Secure)是HTTP的安全版本,它通过在HTTP协议之上加入SSL/TLS协议来实现数据加密传输,确保数据在客户端和服务器之间的传输过程中不会被窃取或篡改。

请添加图片描述

HTTPS 的工作原理

请添加图片描述

  1. 客户端发起HTTPS请求:第一次握手,客户端告诉服务端,它支持什么样的加密协议版本(TLS1.2),使用什么样的加密套件(RSA),并且给出一个客户端随机数(明文)。

  2. 服务器返回证书:第二次握手,服务端收到请求后,告诉客户端确定的加密方式等信息,服务器证书和服务器随机数(明文)。这个证书由受信任的证书颁发机构(CA)签署,确保其真实性。

  3. 客户端验证证书:第三次握手,客户端收到服务器发送的数字证书后,会验证其合法性,包括证书的颁发机构、有效期等。如果证书可信,客户端会从证书里取出服务器公钥,同时再生成第三个随机数(服务器公钥加密)。通过三个随机数用算法生成一个会话密钥。

请添加图片描述

  1. 客户端加密随机数:客户端使用服务器的公钥加密第三个随机数,并将加密后的第三个随机数发送给服务器。

  2. 服务器解密会话密钥:第四次握手,服务端使用自己的私钥解密得到第三个随机数。结合三个随机数,跟客户端一样通过同样的算法获得一个会话密钥。此时,客户端和服务端都拥有了相同的会话密钥。

  3. 使用对称密钥进行加密通信:四次握手之后,客户端和服务器使用这个会话密钥(对称加密)进行后续的加密通信,确保数据传输的安全性。

在这里插入图片描述

公钥加密和解密

在非对称加密中,有一对密钥:公钥和私钥。公钥用于加密数据,私钥用于解密数据。这是因为:

  • 公钥(公开密钥):可以公开给任何人,主要用于加密数据。由于公钥是公开的,任何人都可以使用公钥加密信息,但只有对应的私钥持有者才能解密这些信息。

  • 私钥(私有密钥):需要保密,仅持有者自己知道。私钥用于解密由公钥加密的数据。

为什么公钥加密的数据不能用公钥解密?

公钥加密和私钥解密是一对数学函数,它们是单向的。这意味着公钥只能用来加密数据,不能用来解密数据,只有私钥可以解密由公钥加密的数据。这种设计的目的是为了确保即使公钥是公开的,数据的解密只能由私钥持有者完成,从而保证数据的安全性。

总结来说,HTTPS通过SSL/TLS协议提供了安全的数据传输机制,确保数据在传输过程中不会被窃取或篡改。而非对称加密则通过公钥加密、私钥解密的方式确保信息的保密性和完整性。

为什么不能直接传公钥?

公钥是公开的,任何人都可以使用公钥加密数据,而只有私钥持有者才能解密。如果用公钥加密对称密钥,即使对称密钥在传输过程中被拦截,只有私钥持有者才能解密得到对称密钥,从而确保了安全性。经过CA私钥加密后再传过去,通过CA私钥和服务器证书还能验证是不是真正的服务器公钥。

请添加图片描述

相关文章:

HTTPS是什么?原理是什么?用公钥加密为什么不能用公钥解密?

HTTPS(HyperText Transfer Protocol Secure)是HTTP的安全版本,它通过在HTTP协议之上加入SSL/TLS协议来实现数据加密传输,确保数据在客户端和服务器之间的传输过程中不会被窃取或篡改。 HTTPS 的工作原理 客户端发起HTTPS请求&…...

系统中非功能性需求的思考

概要 设计系统时不仅要考虑功能性需求,还要考虑一些非功能性需求,比如: 扩展性可靠性和冗余安全和隐私服务依赖SLA要求 下面对这5项需要考虑的事项做个简单的说明 1. 可扩展性 数据量增长如何扩展? 流量增长如何扩展&#xf…...

力扣第215题“数组中的第K个最大元素”

在本篇文章中,我们将详细解读力扣第215题“数组中的第K个最大元素”。通过学习本篇文章,读者将掌握如何使用快速选择算法和堆排序来解决这一问题,并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释,以便于理解。…...

java.util.function实现原理和Java使用场景【Function、Predicate集合转换过滤,BiConsumer事件处理】

简介 java.util.function 是 Java 8 引入的一个功能包,它包含了多种函数式接口的定义,使得在 Java 中进行函数式编程变得更为方便。下面我将分别介绍 java.util.function 的作用、实现原理、常用 Java 使用场景以及代码示例。 作用 java.util.function 的主要作用是为 Jav…...

《每天5分钟用Flask搭建一个管理系统》 第6章:数据库集成

第6章:数据库集成 6.1 数据库的选择和配置 在Flask中集成数据库,首先需要选择一个数据库系统。常见的选择包括SQLite、MySQL、PostgreSQL等。选择后,需要配置数据库连接字符串。 示例代码:配置数据库 from flask import Flask…...

pandas读取和处理Excel文件的基础应用1

Pandas如何读取Excel文件并处理数据 引言: Pandas是一种常用的数据处理和分析工具,它提供了丰富的函数和方法,方便用户对数据进行清洗、转换和分析。在实际工作中,我们经常需要处理Excel格式的数据文件,本文将介绍如何…...

electron vite react 创建一个项目

要使用 Electron、Vite 和 React 创建一个项目,你可以按照以下步骤操作: 1. 安装 Node.js 和 npm 首先,确保你的计算机上安装了 Node.js 和 npm(Node Package Manager)。你可以从 Node.js 官网 下载并安装。 2. 初始化一个新的项目 在你的工作目录下,创建一个新的文件…...

鸿蒙使用 @Builder扩展出来的布局数据更新没法更新UI

由于业务的复杂,所以我们把相关UI抽离出来。但是数据变化了,没法更新UI Builder MyGridLayout() { } 通过日志打印发现数据的确是更新了,但是UI就没没办法,如何解决呢 Entry Component struct Page35 {// State sArray: bool…...

湖南省教育网络协会莅临麒麟信安调研教育网络数字化建设及教育信创发展情况

6月28日下午,湖南省教育网络协会理事长张智勇、秘书长刘志勇、副理事长黄旭、胡洪波、周中伟等协会相关负责人一行莅临麒麟信安,就湖南省教育网络数字化建设、教育信创工作等主题进行深入调研。麒麟信安副总裁王攀热情接待。 协会成员一行来到麒麟信安展…...

论文阅读_优化RAG系统的检索

英文名称: The Power of Noise: Redefining Retrieval for RAG Systems 中文名称: 噪声的力量:重新定义RAG系统的检索 链接: https://arxiv.org/pdf/2401.14887.pdf 作者: Florin Cuconasu, Giovanni Trappolini, Federico Siciliano, Simone Filice, Cesare Campag…...

STC8/32 软硬件I2C通讯方式扫描I2C设备地址

STC8/32 软硬件I2C通讯方式扫描I2C设备地址 📄主要用于检测挂载在I2C总线上的设备。在驱动I2C设备之前,如果能扫描到该设备,说明通讯设备可以连接的上,在提前未知I2C地址的情况下,可以方便后面的驱动代码的完善。 🔬扫描测试效果:(测试mpu6050以及ssd1306 i2c oled )…...

Linux——数据流和重定向,制作镜像

1. 数据流 标准输入( standard input ,简称 stdin ):默认情况下,标准输入指从键盘获取的输入 标准输出( standard output ,简称 stdout ):默认情况下,命令…...

Windows 11的市场份额越来越大了,推荐你升级!

7月1日,系统之家发布最新数据,显示Windows 11操作系统的市场份额正在稳步上升。自2021年10月Windows 11发布以来,Windows 10一直占据着市场主导地位,当时其市场份额高达81.44%。然而,随着时间的推移,Window…...

微服务架构中的调试难题与分布式事务解决方案

微服务架构作为现代软件开发的一种主要趋势,因其灵活性、高可维护性和易于扩展的特点,得到了广泛的应用。然而,在享受微服务架构带来的诸多优点的同时,开发者也面临着一些新的挑战。调试的复杂性和分布式事务的处理是其中两个较为…...

银行家算法-操作系统中避免死锁的最著名算法

背景 有很多文章都会介绍银行家算法。在百度和CSDN上搜一搜能搜出很多来。很多同学会觉得这个算法很深奥,有些文章写的又很复杂,其实真的很简单。这里简单记录一下基本原理,然后大家再配合其他文章看,就能加深理解。 算法原理 …...

PCL 基于点云RGB颜色的区域生长算法

RGB颜色的区域生长算法 一、概述1.1 算法定义1.2 算法特点1.3 算法实现二、代码示例三、运行结果🙋 结果预览 一、概述 1.1 算法定义 点云RGB区域生长算法: 是一个基于RGB颜色信息的区域生长算法,用于点云分割。该算法利用了点云中相邻点之间的颜色相似性来将点云分割成…...

cube-studio开源一站式机器学习平台,在线ide,jupyter,vscode,matlab,rstudio,ssh远程连接,tensorboard

全栈工程师开发手册 (作者:栾鹏) 一站式云原生机器学习平台 前言 开源地址:https://github.com/tencentmusic/cube-studio cube studio 腾讯开源的国内最热门的一站式机器学习mlops/大模型训练平台,支持多租户&…...

1976 ssm 营地管理系统开发mysql数据库web结构java编程计算机网页源码Myeclipse项目

一、源码特点 ssm 营地管理系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开…...

技术派全局异常处理

前言 全局的异常处理是Java后端不可或缺的一部分,可以提高代码的健壮性和可维护性。 在我们的开发中,总是难免会碰到一些未经处理的异常,假如没有做全局异常处理,那么我们返回给用户的信息应该是不友好的,很抽象的&am…...

对于mysql 故障的定位和排查

故障表现 他的执行时间超过规定的限制(比如1000ms)CPU使用率高大量业务失败,数据连接异常执行sql越来越慢,失败越来越多 解决方案 定位 应急 故障恢复 定位 查询慢sql的日志查看mysql 的performance schena(里面…...

为什么你需要Scroll Reverser?macOS滚动方向独立控制的终极解决方案

为什么你需要Scroll Reverser?macOS滚动方向独立控制的终极解决方案 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 在macOS上使用触控板和鼠标时,你是否…...

Kubernetes Agent沙箱:构建安全隔离的集群组件运行时环境

1. 项目概述:一个为Kubernetes集群“特工”准备的沙箱在云原生世界里,Kubernetes已经成为了事实上的操作系统,而运行在其中的工作负载,就是一个个“特工”,它们执行着各种关键任务。但你是否想过,这些“特工…...

基于规则引擎的自动化文件管理工具smartcat实战指南

1. 项目概述:一个智能化的文件分类与归档工具最近在整理个人电脑和服务器上的文件时,我又一次陷入了混乱。下载文件夹里塞满了各种格式的文档、图片、压缩包,项目目录下混杂着不同版本的代码、设计稿和会议记录。手动分类不仅耗时&#xff0c…...

如何提升宝塔面板文件管理效率_使用SSH命令与Web端结合.txt

...

当深度学习赋能异步电机矢量控制:从模型优化到性能跃迁

1. 异步电机矢量控制的传统挑战 我第一次接触异步电机矢量控制是在2015年做工业机器人项目时。当时为了调试一个简单的速度环,整整花了两周时间反复调整PI参数。这种经历让我深刻体会到传统控制方法的局限性——就像用螺丝刀修理精密手表,虽然最终能调好…...

ARM SCTLR2_EL2寄存器解析与虚拟化安全控制

1. ARM SCTLR2_EL2寄存器架构解析SCTLR2_EL2是ARMv8/v9架构中EL2(Hypervisor)级别的扩展系统控制寄存器,作为标准SCTLR_EL2的补充,它通过掩码位机制实现了对关键系统功能的细粒度控制。这个64位寄存器主要包含两类功能字段&#x…...

告别枯燥表格!用Power BI的矩形树图,5分钟搞定你的销售利润可视化分析

商业数据可视化实战:用Power BI矩形树图5分钟呈现销售利润洞察 在每周的销售复盘会议上,你是否经常面对这样的困境:手头有一份密密麻麻的Excel表格,包含了各省市、各产品的销售利润数据,却难以快速向团队传达关键业务洞…...

Vibeproxy:轻量级可编程HTTP代理,实现API Mock与故障注入

1. 项目概述:一个轻量级的HTTP代理工具最近在折腾一些需要模拟不同网络环境或者进行API测试的项目时,我一直在寻找一个足够轻量、灵活且易于集成的HTTP代理工具。市面上成熟的代理方案很多,但要么功能过于臃肿,要么配置起来相当繁…...

面试时被问“你的缺点是什么”,这样回答反而加分

面试中,当面试官看似随意地问出“你的缺点是什么”时,空气往往会突然安静几秒。对软件测试工程师而言,这个问题尤其微妙——我们每天都在和“找茬”打交道,对缺陷和风险有着本能的敏感。然而,面试官抛出这个问题&#…...

被安排做“脏活累活”怎么办?聪明人把它变成了核心竞争力

在软件测试的职业旅程中,几乎每一位从业者都会遇到这样的时刻:领导把最繁琐的模块分给你,把重复度最高的回归用例交给你,把无人问津的旧系统兼容性测试派给你。这些任务往往技术含量看似不高、耗时巨大且难以在简历上写出亮点&…...