【Linux】HTTPS
欢迎来到Cefler的博客😁
🕌博客主页:折纸花满衣
🏠个人专栏:Linux
目录
- 👉🏻HTTPS协议概念
- 👉🏻加密
- 为什么要进行加密
- 👉🏻常见的加密方式
- 对称加密
- 非对称加密
- 对称加密和非对称加密对比
- 👉🏻数字签名
- 👉🏻数据摘要and数据指纹
👉🏻HTTPS协议概念
🌈基本概念
HTTPS(Hypertext Transfer Protocol Secure)是一种用于在计算机网络上进行安全通信的协议。它是HTTP的安全版本,通过使用TLS/SSL
协议进行加密,确保了数据在传输过程中的安全性和完整性。HTTPS的主要作用是保护用户的隐私和数据安全,防止敏感信息在传输过程中被窃取或篡改。通常,HTTPS被用于安全地传输网页、登录信息、支付信息等敏感数据。网站使用HTTPS可以通过使用SSL证书
来确保数据传输的安全,这样用户在访问这些网站时就可以看到浏览器地址栏中的“https://”前缀,并且通常会有一个锁定的图标,表示连接是安全的。
HTTPS 也是⼀个应⽤层协议. 是在 HTTP 协议的基础上引⼊了⼀个加密层.
HTTP 协议内容都是按照⽂本的⽅式明⽂传输的. 这就导致在传输过程中出现⼀些被篡改的情况.
👉🏻加密
🌈基本概念
加密就是把 明⽂ (要传输的信息)进⾏⼀系列变换, ⽣成 密⽂ .
解密就是把 密⽂ 再进⾏⼀系列变换, 还原成 明⽂ .
在这个加密和解密的过程中, 往往需要⼀个或者多个中间的数据, 辅助进⾏这个过程, 这样的数据称为 密钥
为什么要进行加密
由于我们通过⽹络传输的任何的数据包都会经过运营商的⽹络设备(路由器, 交换机等), 那么运营商的⽹
络设备就可以解析出你传输的数据内容, 并进⾏篡改.
比如我们下载软件A,点击 “下载按钮”, 其实就是在给服务器发送了⼀个 HTTP 请求, 获取到的 HTTP 响应其实就包含了该APP 的下载链接. 运营商劫持之后, 就发现这个请求是要下载软件A, 那么就⾃动的把交给⽤⼾的响应
给篡改成 “软件B” 的下载地址了.
所以,因为http的内容是明⽂传输的,明⽂数据会经过路由器、wifi热点、通信服务运营商、代理服务
器等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传
输的信息且不被双⽅察觉,这就是 中间⼈攻击
,所以我们才需要对信息进⾏加密。
👉🏻常见的加密方式
对称加密
对称加密是一种加密方式,使用相同的密钥进行加密和解密。这意味着发送方和接收方必须事先共享密钥,以便彼此能够互相加密和解密数据。
在对称加密中,加密和解密过程都使用同一把密钥。发送方使用密钥将明文(原始数据)加密成密文(加密后的数据),然后将密文发送给接收方。接收方使用相同的密钥解密密文,将其还原成明文。
对称加密的优点包括速度快和加密效率高,因为它不需要进行复杂的数学运算。但是,对称加密的主要缺点是密钥的安全性问题。由于发送方和接收方都必须知道密钥,因此需要在它们之间安全地共享密钥,这可能会带来一些安全隐患。
常见的对称加密算法包括DES
(Data Encryption Standard)、3DES
(Triple DES)、AES
(Advanced Encryption Standard)等。这些算法在保护数据的安全性方面发挥着重要作用,被广泛应用于网络通信、数据存储等领域。
非对称加密
非对称加密,也称为公钥加密,使用一对密钥进行加密和解密:公钥和私钥。这两个密钥是一对相关联的密钥,其中一个用于加密,另一个用于解密。
-
公钥:公钥是公开的,任何人都可以访问。它用于加密数据。即使数据被公钥加密,只有对应的私钥才能解密。
-
私钥:私钥是保密的,只有密钥的所有者可以访问。它用于解密数据。私钥必须始终保持机密,不应该被泄露。
非对称加密的基本原理是使用公钥加密数据,然后只有私钥的持有者才能解密数据。这使得非对称加密提供了更高的安全性,因为即使公钥被攻击者获得,他们也无法解密由公钥加密的数据,除非他们也拥有对应的私钥。
非对称加密广泛应用于网络安全领域,例如:
- 安全的数据传输(如HTTPS协议)
- 数字签名
- 身份验证
- 密钥交换
常见的非对称加密算法包括RSA
(Rivest-Shamir-Adleman)、DSA
(Digital Signature Algorithm)、ECC
(Elliptic Curve Cryptography)等。这些算法在保护数据的安全性和确保通信的机密性方面发挥着重要作用。
对称加密和非对称加密对比
对称加密适合于大量数据的加密,但需要解决密钥管理的问题;非对称加密提供了更好的安全性,但加密和解密速度较慢,适合于密钥交换和身份验证等场景。因此,实际应用中常常结合两种加密方式,利用对称加密的速度和效率以及非对称加密的安全性
👉🏻数字签名
数字签名是一种用于确保数据的完整性、认证数据来源以及验证数据的不可否认性的加密技术。它结合了非对称加密算法
和哈希函数
,通常用于数字通信和电子文件传输中。
数字签名的基本原理如下:
-
生成密钥对:首先,签名者需要生成一对密钥,包括私钥和公钥。私钥用于签名数据,而公钥用于验证签名。
-
对数据进行哈希处理:签名者使用哈希函数对要签名的数据进行处理,生成数据的摘要或哈希值。
-
使用私钥进行签名:签名者使用自己的私钥对数据的哈希值进行加密,生成数字签名。
-
发送数据和签名:签名者将
原始数据
和数字签名
一起发送给接收者。 -
验证签名:接收者收到数据和数字签名后,使用签名者的公钥对数字签名进行解密,得到数据的哈希值。然后,接收者使用相同的哈希函数对接收到的数据进行处理,生成新的哈希值。如果这两个哈希值匹配,则说明签名有效,数据完整性得到验证,并且数据来源可以被认证。
该过程可表示为下图: 👇🏻
数字签名的作用包括:
- 数据完整性验证:接收者可以使用数字签名来验证数据在传输过程中是否被篡改。
- 身份认证:数字签名可以用于确认数据的发送者,因为只有发送者拥有私钥才能生成有效的数字签名。
- 不可否认性:发送者无法否认已经签名的数据,因为数字签名是基于私钥加密的,只有发送者才能生成有效的签名。
总的来说,数字签名是一种强大的加密技术,用于确保数据的完整性、认证数据来源以及验证数据的不可否认性。
👉🏻数据摘要and数据指纹
数据摘要和数据指纹都是用于验证数据完整性的技术,它们的基本原理是将任意长度的数据转换成固定长度的哈希值。
-
数据摘要:数据摘要是通过使用哈希函数将任意长度的数据转换成固定长度的唯一值。常见的哈希函数包括MD5、SHA-1、SHA-256等。数据摘要常用于验证数据完整性,比如在网络传输过程中,发送方可以对数据进行摘要计算,并将摘要值一并发送给接收方,接收方接收到数据后也可以计算摘要值,然后与发送方提供的摘要值进行比较,以验证数据是否被篡改。
-
数据指纹:数据指纹通常是数据的一种加密形式,也称为数据的哈希值。与数据摘要类似,数据指纹也是通过哈希函数将任意长度的数据转换成固定长度的唯一值。但是,数据指纹通常与数据的签名相关联,用于验证数据的来源和完整性。在加密数字通信中,发送方会对数据进行哈希计算,并使用自己的私钥对哈希值进行签名,然后将签名和数据一起发送给接收方。接收方使用发送方的公钥验证签名的有效性,然后再对接收到的数据计算哈希值,并与签名中的哈希值进行比较,以验证数据的完整性和来源的真实性。
总的来说,数据摘要和数据指纹都是通过哈希函数将数据转换成固定长度的唯一值,用于验证数据完整性。数据指纹通常与数字签名相关联,用于验证数据的来源和完整性,而数据摘要则更广泛地用于数据完整性验证。
虽然数据摘要和数据指纹都是用于验证数据完整性的技术,并且都使用哈希函数将数据转换成固定长度的唯一值,但它们在使用场景和目的上存在一些区别:
-
使用场景:
- 数据摘要通常用于验证数据的完整性,例如在文件传输或数据存储中,可以计算数据的摘要并与原始数据的摘要进行比较,以确保数据在传输或存储过程中没有被篡改。
- 数据指纹则更常用于数字签名和身份验证等场景,用于验证数据的来源和完整性。数据指纹通常与数字签名一起使用,以验证数据的真实性和完整性。
-
关联性:
- 数据摘要通常是独立的,只用于验证数据的完整性,不与任何身份验证或数字签名过程相关联。
- 数据指纹通常与数字签名过程相关联,用于验证数据的来源和完整性。在数字签名过程中,数据的哈希值会被加密,并与签名一起发送,以确保数据的完整性和真实性。
-
目的:
- 数据摘要的主要目的是验证数据在传输或存储过程中是否被篡改,以确保数据的完整性。
- 数据指纹的主要目的是验证数据的来源和完整性,以确保数据的真实性和完整性。
虽然在某些情况下这两个术语可能会交叉使用,但它们在使用场景和目的上仍存在一些区别。
如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长
相关文章:

【Linux】HTTPS
欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:Linux 目录 👉🏻HTTPS协议概念👉🏻加密为什么要进行加密 👉🏻常见的加密方式对称加密…...

语音识别--使用YAMNet识别环境音
⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号…...
前端JS必用工具【js-tool-big-box】,邮箱,手机,身份证号,ip地址等正则验证方法学习
这一小节,我们针对前端npm包 js-tool-big-box 的使用做一些讲解,主要是针对项目中,邮箱,手机号,身份证号,ip地址,url格式,邮政编码等验证的方法使用。 目录 1 安装和引入 2 邮箱验…...

notepad++安装 hex-editor插件
打开notepad 点击插件 搜索 hex-editor,点击右侧 安装install 安装成功后,在已安装插件中就有显示了...

Ubuntu18.04设置SSH密钥登录
我们一般使用 VSCode 、MobaXterm、PuTTY等 SSH 客户端来远程管理 Linux 服务器。但是,一般的密码方式登录,容易有密码被暴力破解的问题。所以,一般我们会将 SSH 的端口设置为默认的 22 以外的端口,或者禁用 root 账户登录。但是即…...

自动化运维管理工具----------Ansible模块详细解读
目录 一、自动化运维工具有哪些? 1.1Chef 1.2puppet 1.3Saltstack 二、Ansible介绍 2.1Ansible简介 2.2Ansible特点 2.3Ansible工作原理及流程 2.3.1内部流程 2.3.2外部流程 三、Ansible部署 3.1环境准备 3.2管理端安装 ansible 3.3Ansible相关文件 …...

零基础代码随想录【Day27】|| 39. 组合总和,40.组合总和II, 131.分割回文串
目录 DAY27 39. 组合总和 解题思路&代码 40.组合总和II 解题思路&代码 131.分割回文串 解题思路&代码 DAY27 39. 组合总和 力扣题目链接(opens new window) 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有…...

实验15 MVC
二、实验项目内容(实验题目) 编写代码,掌握MVC的用法。 三、源代码以及执行结果截图: inputMenu.jsp: <% page contentType"text/html" %> <% page pageEncoding "utf-8" %> &…...

《Python编程从入门到实践》day21
# 昨日知识点回顾 设置背景颜色 在屏幕中央绘制飞船 # 今日知识点学习 12.5 重构:方法_check_events()和_update_screen() 12.5.1 方法_check_events() import sys import pygame from Settings import Settings from Ship import Shipclass AlienInvasion:"…...

上位机图像处理和嵌入式模块部署(树莓派4b镜像烧录经验总结)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 陆陆续续也烧录了好多次树莓派的镜像了,这里面有的时候很快,有的时候很慢。特别是烧录慢的时候,也不知道是自己…...

简单数据加解密,JS和JAVA同时实现
前端Vue调用Java后端接口中的数据进行加密,以避免敏感数据泄露。 现在实现一个高性能加密方法,用来对数据进行加密后传输。算法包括JS的加密和解密方法,也包括Java的加密解密方法。 可以在前端加密,后端解密。也可以在后端加密&…...
Android Framework中PackageManagerService的深度剖析
摘要 Android操作系统的核心服务之一——PackageManagerService(PMS),扮演着至关重要的角色,负责维护系统中所有应用程序的生命周期管理。本文旨在全面探讨PMS的功能特性、工作流程、实际应用场景,并对其进行优劣分析,以期为开发者…...
(AI Web、ChatGPT Native、Ai Loading、AI Tools、知豆AI)
目录 1、AI Web 2、ChatGPT Native 3、Ai Loading 4、AI Tools 5、知豆AI 1、AI Web...
VBA 批量处理Excel文件
目录 一. 批量创建Excel文件1.1 VBA的方式1.2 Powershell方式 二. 批量删除文件三. 批量重命名文件四. 合并多个Excel数据到一个Excel文件中 一. 批量创建Excel文件 1.1 VBA的方式 Sub CreateFiles()Dim strPath As String, strFileName As StringDim i As Long, rDim pathSe…...

PG实例连接访问控制
实例访问控制可以控制来自于不同主机,不同用户是否允许访问指定的数据库,以及验证方式。 与oracle中的连接管理器的功能相同,之前有写过一篇oracleCMAN连接管理器的配置实操: 配置oracle连接管理器(cman)…...

2024-05-07 商业分析-如何在社会层面做一个更好的工具人-记录
摘要: 2024-05-07 商业分析-如何成为一个靠谱的工具人 如何在社会层面做一个更好的工具人 那么今天讲的这个主题呢,对吧?你们一看啊,就觉得这个就不应该我讲是吧啊,但是呢这个逻辑呢我还得跟你们讲一下啊,就是如何成为…...

C++设计模式-创建型设计模式
设计模式 设计模式是什么 设计模式是指在软件开发中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案;其实就是解决问题的固定套路。但是要慎用设计模式,有一定的工程代码量之后用它比较…...

code-server容器webpack的ws无法连接解决方法
TLDR 通过指定client的wsrul去连接ws devServer.client.webSocketURL ‘wss://<Forwarded uri>/ws’ 拓扑 1、code-server: 用于编写代码、启动webpack dev-server 服务;[https://<domain>:8001] 2、webpack: 用于浏览dev-server服务;[ht…...
leetcode47-Permutations II
分析 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums [1,1,2] 输出: [[1,1,2], [1,2,1], [2,1,1]] 题目 由于元素是重复的,要求返回不重复的,所以一定会有…...

246 基于matlab的交流电机动态方程
基于matlab的交流电机动态方程,用于交流电机动态分析。输入电机的额定功率(kW)、电机的额定转速(r/min)、转子外径(m)、铁心长(m)转子槽数、电机极对数 等参数,输出转速变化、力矩变化等结果。程序已调通,可直接运行。 246 交流电机动态 转速…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

CSS3相关知识点
CSS3相关知识点 CSS3私有前缀私有前缀私有前缀存在的意义常见浏览器的私有前缀 CSS3基本语法CSS3 新增长度单位CSS3 新增颜色设置方式CSS3 新增选择器CSS3 新增盒模型相关属性box-sizing 怪异盒模型resize调整盒子大小box-shadow 盒子阴影opacity 不透明度 CSS3 新增背景属性ba…...

Java数组Arrays操作全攻略
Arrays类的概述 Java中的Arrays类位于java.util包中,提供了一系列静态方法用于操作数组(如排序、搜索、填充、比较等)。这些方法适用于基本类型数组和对象数组。 常用成员方法及代码示例 排序(sort) 对数组进行升序…...
Vue 实例的数据对象详解
Vue 实例的数据对象详解 在 Vue 中,数据对象是响应式系统的核心,也是组件状态的载体。理解数据对象的原理和使用方式是成为 Vue 专家的关键一步。我将从多个维度深入剖析 Vue 实例的数据对象。 一、数据对象的定义方式 1. Options API 中的定义 在 Options API 中,使用 …...