HTTP/HTTPS ④-对称加密 || 非对称加密

embedded/2025/1/13 5:22:43/

https://i-blog.csdnimg.cn/direct/564f422627de4266862bc492bdfc0a82.png" width="1200" />

这里是Themberfue 

✨HTTP协议的大体内容我们已经讲完了

❤️本章我们将聊聊HTTPS中的 S 那些事儿 


HTTPS简介

  • ✨在前三篇文章中,我们主要讲解了HTTP协议的简单介绍以及其报文的键值对含义等。比较于HTTP,HTTPS有什么不同呢?它们两者又有什么关系呢?我们接下来继续讲解。
  • 在当今互联网中,众多数据在互联网上大量传播,某些网站要想实现某些业务,难免需要传输客户的敏感信息,但是互联网的传输的透明的,是很容易被黑客从中拦截的;所以,保证用户敏感信息的隐私性和安全性,需要对传输的数据进行加密,从而让黑客难以破解其中的数据信息。
  • HTTPS(Hypertext Transfer Protocol Secure,超文本传输安全协议),是 HTTP协议 的安全版本,用于确保数据在客户端(如浏览器)与服务器之间的传输过程是加密、安全的。它是通过在 HTTP 基础上加入 SSL/TLS协议 实现的。
  • HTTPS不是协议,而是通过 SSL/TLS协议 提供的安全连接进行的 HTTP 通信,最初,它被用于安全很重要的通信,例如在互联网上传输个人信息和电子支付。
  • 与以纯文本形式发送和接收消息的标准 HTTP 不同,HTTPS 使用 SSL/TLS 等协议对服务器进行身份验证、加密通信内容和检测篡改。 这样可以防止欺骗、中间人攻击和窃听等攻击。 HTTPS 使用 443 作为已知端口号(HTTP 使用 80 作为已知端口号)。

对称加密

  • 在HTTP协议中,数据是明文传输的,黑客以及不法分子很容易的就可以拦截到这些数据

https://i-blog.csdnimg.cn/direct/aaa3edfc478849019886f31a85f7542d.png" width="1200" />

  • 为了解决数据传输的安全性,故引入了对称加密
  • ✨对称加密是一种加密算法,其特点是加密和解密都使用同一个密钥。它是一种效率高、适用范围广的加密方式,广泛应用于数据传输和存储的安全保护中。
  • 首先,在双方通信前,互相告知对方使用的密钥,进行统一;之后的数据都通过这个密钥进行加密传输,任意一方在传输数据前都用这个密钥进行加密,拿到数据的那一方就通过这个密钥对传输来的数据进行解密。

https://i-blog.csdnimg.cn/direct/ca2c13b4923a4c25bed6dd8b72c2c2f2.png" width="1200" />

  • 通过对传输的数据进行加密,尽管黑客拿到了数据,那也是加密后的数据,不进行解密的话是无法查看其中的内容的。
  • 由于客户端肯定不止一个,需要每个客户端的密钥都是不同的,不然黑客就可以伪装成客户端拿到这个密钥了。
  • 想象一个上锁的箱子,锁和箱子是密钥。发信方用钥匙锁上箱子(加密),而只有拥有这把钥匙的收信方才能打开箱子(解密)。如果钥匙(密钥)被盗,任何人都可以打开箱子(破解通信)。
  • 对称加密的核心是如何安全地传递和保护这把“钥匙”。

对称加密的特点

加密和解密使用相同的密钥

  • 无论加密方还是解密方,都需要拥有同一把密钥。

加密速度快

  • 算法实现简单,运算效率高,适合大规模数据的快速加密。

密钥分发是安全的关键

  • 如果密钥被泄露,通信的安全性将不复存在。

对称加密的基本工作原理

加密阶段

  • 明文通过对称加密算法和密钥生成密文。
  • 如:密文 = 加密算法 (明文,密钥)

解密阶段

  • 密文通过同一算法和密钥还原为明文。
  • 如:明文 = 解密算法 (密文,密钥)

对称加密的优缺点

速度快

  • 加密和解密效率高,适合大数据量传输。

实现简单

  • 算法相对直观,便于实现。

密钥分发困难

  • 通信双方必须共享同一个密钥,但密钥传递的过程中容易被窃取。

扩展性差

  • 在多用户环境下,每对通信双方需要单独的密钥,密钥管理变得复杂。

常见的对称加密算法(了解即可)

DES(Data Encryption Standard)

  • 56 位密钥,分组加密算法。
  • 安全性较弱,已逐渐被淘汰。

3DES(Triple DES)

  • 使用三次 DES 加密,提高安全性。
  • 加密强度较高,但效率较低。

AES(Advanced Encryption Standard)

  • 支持 128、192 和 256 位密钥,分组加密算法。
  • 安全性和效率高,是目前最广泛使用的对称加密算法。

Blowfish 和 Twofish

  • 密钥长度可变,效率高,适用于嵌入式设备。

非对称加密 

  • ✨通过上述的讲解,不难发现,对称加密有一个致命的缺点,就是其密钥是明文传输的,黑客拿到密钥后,很容易就可以对这个密钥进行破解,从而将拦截到的数据进行解密。
  • 那么我再通过另一个密钥对传输的密钥加密呢?依然没用,只要黑客能拿到这个密钥,就可以进行破解,不管你加密多少层都没有。
  • 所以,非对称加密解决的就是这个问题。✨非对称加密是一种加密方式,使用一对密钥进行加密和解密,其中一个是公钥(Public Key),另一个是私钥(Private Key)。加密和解密分工明确:公钥用于加密,私钥用于解密,或者反之。这种方式广泛用于数据加密、数字签名和身份认证。
  • 首先,双方在通信前,服务端发送公钥给客户端,客户端生成对称加密的密钥,该密钥通过公钥进行加密传输给服务端,服务端拿到加密后的密钥,再通过私钥进行解密,从而知道了密钥,此后,实际数据都通过这个密钥进行加密解密。由于黑客在这个过程中拿不到密钥,也就不能破解了,因为只能用私钥来解密,而私钥又是服务器私有的。这样就保护好 “钥匙” 了。

https://i-blog.csdnimg.cn/direct/d64557bcbc0a4763a245af2b20dabfc9.png" width="1200" />

  • 公钥是每个客户端都可以知道的,黑客知道也没事,公钥只是用来加密的,你没私钥你根本解不了密。由于黑客拿不到私钥,在对密钥进行加密传输时,黑客就不能破解加密后的密钥了,自然就拿不到密钥了。
  • 想象有一个信箱和一把钥匙,公钥相当于每个人都知道的信箱地址,任何人都可以往信箱里投递信息(加密)。私钥相当于只有信箱主人持有的钥匙,只有主人能打开信箱(解密)。即使其他人知道信箱地址(公钥),没有钥匙(私钥)也无法获取信件内容。
  • ✨非对称加密的核心在于:公钥公开但私钥保密,确保通信安全和数据验证。

非对称加密的特点

密钥对:公钥和私钥

  • 公钥是公开的,任何人都可以获取。
  • 私钥是保密的,仅拥有者知道。

加密与解密分离

  • 公钥和私钥不能互相推导,因此安全性更高。

速度相对较慢

  • 运算复杂度高,适合小数据量加密或关键场景。

非对称加密的基本工作原理

加密数据传输

  • 发信方使用接收方的公钥加密数据。
  • 接收方使用自己的私钥解密数据。
  • 确保只有拥有私钥的人才能解密。
  • 密文 = 加密算法 (明文,接受方公钥)
  • 明文 = 解密算法 (密文,接收方私钥)

数字签名(下一篇会讲到)

  • 发信方使用自己的私钥对数据签名。
  • 接收方使用发信方的公钥验证签名。
  • 确保数据的来源可信且未被篡改。
  • 签名 = 加密算法(哈希值,发信方私钥)

非对称加密的优缺点

密钥管理方便

  • 不需要事先共享密钥,减少泄露风险。

安全性高

  • 即使公钥被公开,私钥仍然安全。

支持数字签名

  • 提供数据完整性和身份认证功能。

计算复杂

  • 加密和解密的速度较慢,效率低。

不适合大数据量

  • 通常仅用于小数据加密或加密对称密钥。

常见的对称加密算法(了解即可)

RSA(Rivest-Shamir-Adleman)

  • 最常用的非对称加密算法。
  • 基于大整数分解难题,支持加密和签名。

ECC(Elliptic Curve Cryptography)

  • 基于椭圆曲线数学,密钥长度更短但安全性更高。
  • 更适合资源受限的设备。

DSA(Digital Signature Algorithm)

  • 专注于数字签名的算法。

Diffie-Hellman(DH)密钥交换

  • 用于协商对称加密密钥,但不直接用于加密数据。

对称加密和非对称加密

特性对称加密非对称加密
密钥数量单个密钥公钥和私钥一对密钥
加密/解密速度
密钥分发和管理难(需安全分发密钥)简单(仅保护私钥即可)
安全性较低(密钥易被窃取)高(公私钥分离)

由于非对称加密计算复杂,运算速度较慢,开销大,所以一般用来加密小数据,如加密对称加密的密钥。对称加密计算较为简单,运算速度快,开销小,适合用来加密大量数据。非对称加密和对称加密通常搭配使用。


  • ✨今天的内容到这就结束了,其实单纯的非对称加密和对称加密并不能完全解决安全地传输数据的问题,在下一节中,我们将讲到证书在里面的作用。
  • 毕竟不知后事如何,且听下回分解 
  • ❤️❤️❤️❤️❤️❤️❤️

https://i-blog.csdnimg.cn/direct/3ebd0d9b792d4e168e6ab0e0cf77aafc.png" width="932" /> 


http://www.ppmy.cn/embedded/153465.html

相关文章

上手体验微软全新整合的王炸平台Fabric

体验确实不错,微软强大的生态能力。 把可视化,数仓,数据胡,数据工厂,机器学习,数据监控等技术都整合到一个平台了。所有数据全都存储在统一的one lake数据中心,消除数据孤岛问题。而且不同角色可…

arcgis中用python脚本批量给多个要素类的相同字段赋值

1、python脚本 import arcpy# 设置工作空间路径 arcpy.env.workspace = r"D:\test.gdb"# 要素集名称 feature_dataset = "test"# 线要素类名称列表,初始化为空 line_feature_classes = []# 遍历要素集获取所有线要素类 for fc in arcpy.ListFeatureClass…

智能工厂的设计软件 应用场景的一个例子: 为AI聊天工具添加一个知识系统 之25 祖传代码:垂类划分出负责监管控的“三层结构”

本文要点 要点 祖传代码将项目垂类划分为“三层结构” 分别负责: 前端组件的管理,后端组关的监视以及 中端组合的控制, -- 将http SPI (标签类:a/p/div。 )紧致(收敛 )为 一个目标…

jenkins 调用bat脚本

1,pipeline语句如下 bat cd /d "D:/WorkSpace"call TEST.bat2,带参数的bat 脚本bat脚本内容如下 echo offecho param[0] %0 echo param[1] %1 echo param[2] %2 echo param[3] %3 echo param[4] %4 echo param[5] %5 echo ... pause 运…

页面滚动下拉时,元素变为fixed浮动,上拉到顶部时恢复原状,js代码以视频示例

页面滚动下拉时,元素变为fixed浮动js代码 以视频示例 <style>video{width:100%;height:auto}.div2,#float1{position:fixed;_position:absolute;top:45px;right:0; z-index:250;}button{float:right;display:block;margin:5px} </style><section id"abou…

Java阶段四04

第4章-第4节 一、知识点 CSRF、token、JWT 二、目标 理解什么是CSRF攻击以及如何防范 理解什么是token 理解什么是JWT 理解session验证和JWT验证的区别 学会使用JWT 三、内容分析 重点 理解什么是CSRF攻击以及如何防范 理解什么是token 理解什么是JWT 理解session验…

docker-compose安装canal并利用rabbitmq同步多个mysql数据

必看&#xff1a;本文默认已经安装好了docker-compose、rabbitmq、mysql并且mysql开启了binlog日志&#xff0c;不需要再安装&#xff1b; 流程图 如上图所示&#xff0c;左边是MQ模式流程图&#xff0c;右边则是TCP模式的流程图&#xff1b; 最终的目的是利用canal监听多个M…

Pulsar客户端如何控制内存使用

Pulsar客户端如何控制内存使用 一、使用场景 在实际应用中&#xff0c;Pulsar客户端的内存使用控制是一个重要的性能优化点。假设有一个搜索类业务需要记录用户搜索请求&#xff0c;以便后续分析搜索热点和优化搜索效果。以下是一个简化的代码示例&#xff1a; PulsarClient…