http与https的区别?

1、HTTP 的最大弊端------不安全

HTTP 之所以被 HTTPS 取代,最大的原因就是不安全,因为http中所有的数据都是明文传输的,自然没有安全性可言,特别是一些敏感数据,比如用户密码和信用卡信息等,一旦被第三方获取,后果不堪设想。这里可能有人会说,我在前端页面对敏感数据进行加密不就行了,比如 MD5 加盐加密。这么想就太简单了。首先 MD5 并不是加密算法,其全称是 Message Digest Algorithm MD5,意为信息摘要算法,是一种不可逆的哈希算法,也就是说经过前端 MD5 处理过的数据在服务器端是无法复原的。这里以密码举例,前端把用户密码通过 MD5 进行处理,并把得到的哈希值发送给服务器,服务器由于无法复原密码,就会直接用这个哈希值处理用户请求。所以第三方在获取这个哈希值后,可以绕过前端登录页面直接访问服务器,造成安全问题。另外,MD5 算法本身的安全性也存在缺陷,这里就不展开谈了。
总之 MD5,SHA-1 之类的哈希算法并不能让 HTTP 变得更安全。要想让 HTTP 更安全,只能使用真正的加密算法,因为加密算法可以用密钥加密或还原数据,只要确保密钥不被第三方获取,那就能确保数据传输的安全了。而这正是 HTTPS 的解决方案

2、对称加密与非对称加密

  • 对称加密:服务器与客户端都使用同一种加密方式进行对双方数据的加解密工作
  • 非对称加密:服务器与客户端使用独立的加密方式对双方数据进行加解密工作

3、HTTPS 原理详解

HTTPS (Hypertext Transfer Protocol Secure) 是基于 HTTP 的扩展,用于计算机网络的安全通信,已经在互联网得到广泛应用。在 HTTPS 中,原有的 HTTP 协议会得到 TLS (安全传输层协议) 或其前辈 SSL (安全套接层) 的加密。因此 HTTPS 也常指 HTTP over TLS 或 HTTP over SSL。

下面由我来详细解释一下HTTPS 加密过程原理

  1. 首先客户端首次发起请求,服务端会生成CA数组证书(这个是收费的服务),这个证书中会包括服务端生成的公钥 ,同时服务端还会生成一份服务端私钥,但私钥并不会放在CA证书中
  2. 服务端将生成的CA证书响应至客户端,同时包含着服务端的公钥,将被客户端获取
  3. 客户端通过对CA证书的解析,拿到公钥,并根据此随机生成一个客户端私钥
  4. 客户端将随机生成的客户端私钥发送到服务端,服务端将使用之前生成的服务端私钥解密此次报文中的客户端私钥
  5. 至此https完成非对称加密,后续数据交互将采用客户端生成的私钥进行对称加解密
相关推荐
Keepingrun19 分钟前
http登录和授权
网络·网络协议·http
Lhappy嘻嘻3 小时前
网络初识|基础入门:局域网广域网、IP 端口、TCP/IP 五层模型与封装解封装全过程
java·开发语言·网络·笔记·网络协议·tcp/ip
laoli_coding11 小时前
如何配置HTTPS站点访问的免费SSL域名证书
网络协议·https·node.js·ssl
糖果店的幽灵19 小时前
安全测试从入门到精通_网络基础与HTTPS
网络·https·php
Keepingrun20 小时前
HTTP基础
网络·网络协议·http
数据知道1 天前
HTTP/HTTPS 安全深度剖析:抓包、解密与证书陷阱
安全·http·https·mitmproxy·抓包解密
apihz1 天前
全球域名 WHOIS 信息实时查询免费 API 接口教程,支持1000+后缀
android·网络·网络协议·tcp/ip·apache·域名·whois
এ慕ོ冬℘゜1 天前
前端核心知识体系进阶:从安全机制、网络协议到原生 JS 实战全解析
前端·网络协议·安全
ZPC82101 天前
model bingxing
网络·人工智能·网络协议·机器人
2501_915106321 天前
iOS 软件测试工具性能监控、日志分析 KeyMob、Instruments等
android·ios·小程序·https·uni-app·iphone·webview