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

【计网】SSL/TLS核心原理

序言

在HTTP协议中,信息是明文传输的,因此为了通信安全就有了HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)协议。HTTPS也是一种超文本传送协议,在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务端的身份,并为浏览器和服务端之间的通信加密。HTTPS是一种通过计算机网络进行安全通信的传输协议,使用HTTP进行通信,借助SSL/TLS建立安全通道和加密数据包。使用HTTPS的主要目的是提供对网站服务端的身份认证,同时保护交换数据的隐私与完整性。TLS是传输层加密协议,前身是SSL协议,由网景(Netscape)公司1995年发布,有时候TLS和SSL两者不做太多区分。

SSL/TLS协议的版本演进

TCP是传输层的协议,但是它是明文传输的,是不安全的。SSL的诞生给TCP加了一层保险,为TCP通信提供安全及数据完整性保护。TLS只是SSL的升级版,它们的作用是一样的。TLS(Transport Layer Security,传输层安全协议)由两层组成:TLS记录(TLS Record)和TLS握手(TLS Handshake)。TLS协议是更新、更安全的SSL协议版本。SSL/TLS可以理解为安全传输层协议不同发展阶段的版本。1999年,SSL应用广泛,已经成为互联网上的事实标准。IETF(Internet Engineering Task Force,国际互联网工程任务组)在1999年把SSL标准化。完成标准化之后,SSL协议名称被改为TLS。SSL/TLS位于应用层和传输层之间,除了HTTP外,它可以为任何基于TCP传输层以上的应用层协议(如WebSocket协议)提供安全性保证。理论上,SSL/TLS协议属于传输层。从理论模型的维度来说,该协议在TCP/IP协议栈的分层结构中所处的层次位置大致如图12-1所示。但是,在具体的编码实现上,SSL/TLS协议属于应用层。从实现的维度来说,该协议在TCP/IP协议栈分层结构中所处的层次位置大致如图

在这里插入图片描述
综合起来可以表述为:SSL/TLS协议理论上属于传输层,却实现于应用层。

在客户端浏览器中,目前应用最广泛的是SSL 3.0、TLS 1.0(有时被标为SSL 3.1)​、TLS 1.1(有时被标为SSL3.2)​、TLS 1.2(有时被标为SSL 3.3)四个版本的协议。比如,在IE浏览器上,用户可以设置是否使用SSL/TLS协议,还可以设置支持哪一些版本的协议,具体如图

在这里插入图片描述
在这里插入图片描述

SSL/TLS协议的分层结构

SSL/TLS协议包括握手协议(Handshake Protocol)、密码变化协议(SSL Change Cipher Spec Protocol)、警告协议(Alert Protocol)、记录协议(Record Protocol)。

(1)握手协议:SSL/TLS协议非常重要的组成部分,用来协商通信过程中使用的加密套件(加密算法、密钥交换算法和MAC算法等)​、在服务端和客户端之间安全地交换密钥、实现服务端和客户端的身份验证。

(2)密码变化协议:客户端和服务端通过密码变化协议通知对端,随后的报文都将使用新协商的加密套件和密钥进行保护和传输。

(3)警告协议:用来向对端发送告警信息,消息中包含告警的严重级别和描述。

(4)应用数据协议:负责将SSL/TLS承载的应用数据传达给通信对端。

(5)记录协议:主要负责对上层的数据(SSL/TLS握手协议、SSL/TLS密码变化协议、SSL/TLS警告协议和应用数据协议)进行分块计算、添加MAC值、加密等处理,并把处理后的记录块传输给对端。

在这里插入图片描述

SSL/TLS协议主要分为两层(上层的是握手协议、密码变化协议、警告协议和应用数据协议,下层的是记录协议)​,主要负责使用对称密码对消息进行加密。其中,握手协议(Handshake Protocol)是SSL/TSL通信中最复杂的子协议,也是安全通信所涉及的第一个子协议。

SSL/TLS运行过程

SSL/TLS协议实现通信安全的基本思路是:消息发送之前,发送方A先向接收方B申请公钥,发送方A采用公钥加密法对发出去的通信内容进行加密,接收方B收到密文后,用自己的私钥对通信密文进行解密。

(1)客户端向服务端索要并验证公钥。(公钥加密,私钥解密验证)
(2)双方协商生成“对话密钥”​。
(3)双方采用“对话密钥”进行加密通信。

前两步又称为“握手阶段”​,每一个TLS连接都会以握手开始。​“握手阶段”涉及四次通信,并且所有通信都是明文的。在握手过程中,客户端和服务端将进行以下四个主要阶段:

(1)交换各自支持的加密套件和参数,经过协商后,双方就加密套件和参数达成一致。
(2)验证对方(主要指服务端)的证书,或使用其他方式进行服务端身份验证。
(3)对将用于保护会话的共享主密钥达成一致。
(4)验证握手消息是否被第三方修改。

SSL/TLS第一阶段握手

客户端与服务端通过TCP三次握手建立传输层连接后,通信双方需要交换各自支持的加密套件和参数,经过协商后,使通信双方的加密套件和参数达成一致。

SSL/TLS“握手”第一个阶段的工作为:由客户端发一个Client Hello报文给服务端,并且第一个阶段只有这一个数据帧(报文)​。Client Hello数据帧的内容大致包括以下信息:

(1)客户端支持的SSL/TLS协议版本,比如TLS 1.2版。
(2)一个客户端生成的随机数,这是握手过程中的第一个随机数,称之为Random_C。
(3)客户端支持的签名算法、加密方法、摘要算法(比如RSA公钥签名算法)​。
(4)客户端支持的压缩方法。

SSL/TLS第二阶段握手

SSL/TLS握手第二个阶段的工作为:服务端对客户端的Client Hello请求进行响应。在收到客户端请求(ClientHello)后,服务端向客户端发出回应,这个阶段的服务端回应帧(报文)一般包含4个回复帧:Server Hello帧、Certificate帧、Server Key Exchange帧、Server Hello Done帧。

Server Hello帧

服务端回复的Server Hello帧主要包含以下内容:
(1)回复服务端使用的加密通信协议版本,比如TLS 1.2版本。
(2)一个服务端生成的随机数,是整个握手过程中的第二个随机数,记为“Random_S”​,稍后用于生成“对话密钥”​。
(3)确认使用的加密方法,比如RSA公钥加密。
(4)服务端的证书。

Certificate帧

Certificate帧用于返回服务端证书,该证书中含有服务端的证书清单(包括服务端公钥)​,用于身份验证和密钥协商。在多数电子商务应用中,客户端都需要进行服务端身份验证,服务端通过Certificate帧发送自己的证书给客户端。

服务端通过Certificate帧给客户端提供身份信息,那么客户端是否需要提供自己的身份证书给服务端呢?

虽然大部分场景中服务端不需要验证客户端的身份,但是只要服务端需要验证客户端的身份,服务端就会发一个CertificateRequest证书请求给客户端。比如,在一些安全性要求较高的机构(如金融机构)往往需要验证客户端身份证书,这些机构只允许通过认证客户连入自己的网络,并且会给正式客户提供USB密钥,里面就包含了一张客户端身份证书,在通信握手时要求客户端提供证书。

Server Key Exchange帧

Server Key Exchange帧的目的是携带密钥交换的额外数据,其消息内容对于不同的协商算法套件都会存在差异。

在某些场景中,服务端不需要发送Server Key Exchange握手消息。如果在Server Hello消息中使用DHE/ECDHE非对称密钥协商算法来进行SSL握手,就将发送该类型握手消息。对于使用RSA算法的SSL握手,不会发送该类型握手消息。另外,使用DH、ECDH算法进行握手时也不会发送该类型握手消息。

Server Hello Done帧

Server Hello Done帧是第二阶段的最后一帧,标记服务端对客户端的Client Hello请求帧的所有响应报文发送完毕,Server Hello Done帧的长度为0。

客户端收到服务端证书后,进行验证,如果证书不是可信机构颁发的,或者域名不一致,或者证书已经过期,那么客户端会进行警告;如果证书没有问题,就继续进行通信。

SSL/TLS第三阶段握手

SSL/TLS握手(Handshake)第三个阶段的工作为:客户端进行回应。在这个阶段,客户端会发送Client KeyExchange、Change Cipher Spec、Encrypted Handshake三个数据帧。

客户端收到第二个阶段的服务端回应报文以后,首先验证服务端证书。如果证书不是可信机构颁布、或者证书中的域名与实际域名不一致、或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。

如果证书没有问题,客户端就会从证书中取出服务端的公钥,然后向服务端发送三项信息:

(1)一个随机数。该随机数用服务端公钥加密,防止被第三方窃听。

此随机数是整个握手阶段出现的第三个随机数,又称Pre-master key。有了它以后,客户端和服务端就同时有了三个随机数,接着双方用事先商定的加密方法各自生成本次会话所用的同一把“会话密钥”​。

(2)编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥加密后发送。

(3)客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时也是前面发送的所有内容的哈希值,用来供服务端校验。

服务端的证书信息会包含Public Key(公钥)​,稍后客户端进行证书验证(身份验证)的流程大致为:Client随机生成一串数,然后用Server发送的Public Key加密(RSA算法)后发给Server;而Server会用其对应的Private key(私钥)解密后再返回给Client; Client将其与原文比较,如果一致,则说明Server拥有Private key,与自己通信的对端Server正是证书的拥有者,因为Public key加密的数据只有Private key才能解密。在实际通信过程中,这个认证过程会复杂很多,包含多次哈希、伪随机等复杂运算。

SSL/TLS第四阶段握手

SSL/TLS握手(Handshake)第四个阶段的工作为:服务端进行最后的回应。在收到客户端的第三个随机数Pre-master key之后,服务端计算并生成本次会话所用的“会话密钥”​,然后向客户端最后发送下面的数据帧:

(1)Change Cipher Spec帧:此帧为服务端的编码改变通知报文。
(2)Encrypted Handshake Message帧:此帧为服务端的握手结束通知报文。

相关文章:

【计网】SSL/TLS核心原理

序言 在HTTP协议中,信息是明文传输的,因此为了通信安全就有了HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)协议。HTTPS也是一种超文本传送协议,在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务端的…...

sqli-labs靶场 less 11

文章目录 sqli-labs靶场less 11 POS联合注入 sqli-labs靶场 每道题都从以下模板讲解,并且每个步骤都有图片,清晰明了,便于复盘。 sql注入的基本步骤 注入点注入类型 字符型:判断闭合方式 (‘、"、’、“”&…...

陕化之光(原创)

当城市在和周公化合 陕化的工装已与朝霞发生反应 工人先锋号已然吹响 陕化工人游走在工作的床层 钢铁森林间穿梭的身影 是沉默的催化剂 让冰冷的方程式 绽放出最活跃的分子温度 扳手与阀门对话时 塔林正在记录 关于电流与压力的学习笔记 每一次精确的调控 都是舞台上…...

【刷题2025】高级数据结构(并查集+优先队列+图论)

1.并查集 (1)基础理论 并查集是一种树形的数据结构,用于处理一些不相交集合的 合并 及 查询 问题。比如,可以用并查集判断一个森林中有几棵树、某个节点是否属于某棵树。 并查集由一个整形数组 pre[] 和两个函数 find() 、 join() 构成。 数组 pre[] 记录了每个点的前驱…...

数据库性能优化(sql优化)_分布式优化思路01_yxy

数据库性能优化_分布式优化思路01 1 分布式数据库的独特挑战2 分布式新增操作符介绍2.1 数据交换操作符(ESEND/ERECV):2.2 数据迭代操作符GI:3 核心优化策略(一)_分区裁剪优化3.1 普通分区裁剪3.2 动态分区裁剪1 分布式数据库的独特挑战 在分布式数据库系统中,核心为数据被…...

云服务器和物理服务器有什么区别

云服务器与物理服务器的核心区别在于资源分配方式、性能稳定性、成本结构、运维管理及 适用场景。以下是具体分析: 一、资源分配与架构差异 云服务器:基于虚拟化技术,将物理服务器集群分割为多个虚拟实例,资源由多个用户 共享,可根据需求弹性调整配置…...

FPGA-DDS技术的波形发生器

1.实验目的 1.1掌握直接数字频率合成(DDS)的基本原理及其实现方法。 1.2在DE2-115 FPGA开发板上设计一个可调频率的正弦波和方波发生器,频率范围10Hz~5MHz,最小分辨率小于1kHz。 1.3使用Quartus II进行仿真,并通过S…...

晶晨线刷工具下载及易错点说明:Key文件配置错误/mac剩余数为0解决方法

晶晨线刷工具下载及易错点说明:Key文件配置错误/mac剩余数为0解决方法 各种版本晶晨线刷工具下载: 晶晨线刷工具易出错点故障解决方法: 1、晶晨线刷工具加载固件的时候提示mac红字且剩余数为0的解决办法 很多同学可能会与遇到加…...

idea如何使用git

在 IntelliJ IDEA 中使用 Git 的详细步骤如下,分为配置、基础操作和高级功能,适合新手快速上手: ​一、配置 Git​ ​安装 Git​ 下载并安装 Git,安装时勾选“Add to PATH”。验证安装:终端输入 git --version 显示版本…...

python——学生管理系统

学生管理系统主要分为以下三个大类: 一、用户类(User): 属性:用户名(username)、密码(password) 功能:注册(register)、登录&#…...

快速幂+公共父节点

# 快速幂 求&#xff1a;23的10000次幂&#xff0c;那么就是求23的5000次幂&#xff0c;因为2350*235023^100;所以可以遍历log(n)次 int res1; int tmp23; for(int i1;i<logn;i) {tmp*tmp; }显然&#xff0c;我们无法通过logn计算次数&#xff1b; 比如是非偶数的怎么计算呢…...

【差分隐私相关概念】瑞丽差分隐私(RDP)命题4

命题4的证明详解&#xff08;分情况讨论&#xff09; 背景与设定 机制&#xff1a; f : D → R f: \mathcal{D} \to \mathcal{R} f:D→R 是由 n n n 个 ϵ \epsilon ϵ-差分隐私机制自适应组合而成。相邻输入&#xff1a; D D D 和 D ′ D D′ 是相邻数据集。目标&#xf…...

Vue 人看 React useRef:它不只是替代 ref

如果你是从 Vue 转到 React 的开发者&#xff0c;初见 useRef 可能会想&#xff1a;这不就是 React 版的 ref 吗&#xff1f;但真相是 —— 它能做的&#xff0c;比你想象得多得多。 &#x1f440; Vue 人初见 useRef 在 Vue 中&#xff0c;ref 是我们访问 DOM 或响应式数据的…...

C++第三方库【JSON】nlohman/json

文章目录 优势使用API从文件中读取json从json文本创建json对象直接创建并操作json对象字符串 <> json对象文件流 <> json对象从迭代器读取像使用STL一样的访问STL容器转化为 json数组STL容器 转 json对象自定义类型转化为 json对象 限制 优势 直观的语法&#xff…...

从源码到实战:深度解析`rsync`增量同步机制与高级应用

从源码到实战&#xff1a;深度解析rsync增量同步机制与高级应用 #mermaid-svg-C1ZMwvhtq4iP4E8m {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-C1ZMwvhtq4iP4E8m .error-icon{fill:#552222;}#mermaid-svg-C1ZMwvht…...

数据库表设计五层分类系统表设计

文章目录 数据库表设计五层分类系统表设计代码思路详解类概述核心方法详解1. processString(String input) 方法2. createNo(String input, boolean peerNode) 方法3. isParent(String parentNo, String sonNo) 方法 编号系统设计使用场景推测代码特点可能的使用示例 NoProcess…...

Centos/RedHat 7.x服务器挂载ISCSI存储示例(无多路径非LVM)

客户让帮忙挂载个ISCSI存储&#xff0c;大概结构如下图所示&#xff1a; ISCSI存储为一台安装了truenas的X86服务器&#xff0c;提供存储服务的IP地址为10.16.0.1 服务器的ETH1网卡配置与10.16.0.1同段网络。 为了给客户做个简单培训&#xff0c;整理了一下操作步骤。下面是配…...

【android bluetooth 协议分析 21】【ble 介绍 2】【什么是IRK,是如何生成和传递的】

1. 什么是 IRK&#xff1f; IRK&#xff0c;全称 Identity Resolving Key&#xff08;身份解析密钥&#xff09;&#xff0c;是 BLE 设备用于生成和解析 Resolvable Private Address&#xff08;RPA&#xff09; 的密钥。 2. IRK 的生成和传递过程 IRK 是在 BLE 配对&#xf…...

4.14-4.15学习总结 IO流:缓冲流+转换流+序列化流+打印流+压缩流+Commons—io工具包+Hutool工具包

图片加密操作&#xff1a; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class test {public static void main(String[] args) throws IOException {FileInputStream fisnull;FileOutputStream fosnull;try{fisnew…...

Linux入门学习笔记

一、文件路径相关 相对路径与绝对路径 相对路径&#xff1a;是从当前工作目录开始表示文件或目录位置的路径。例如&#xff0c;当前在 /home/user 目录下&#xff0c;若要访问 user 目录下 test 文件夹中的 file.txt 文件&#xff0c;相对路径就是 test/file.txt 。它依赖于当…...

Redis适用场景

Redis适用场景 一、加速缓存二、会话管理三、排行榜和计数器四、消息队列五、实时分析六、分布式锁七、地理位置数据八、限流九、数据共享十、签到 一、加速缓存 Redis最常见的应用之一是作为缓存层&#xff0c;用于存储频繁访问的数据&#xff0c;从而减轻数据库的负载。 通过…...

# WPS打开新文档,“工具”菜单下是空白

WPS打开新文档&#xff0c;“工具”菜单下是空白 在 WPS 中打开新文档后 “工具” 菜单下空白&#xff0c;可能由多种原因导致&#xff0c;如下图&#xff1a; 下面分析并给出对应的解决办法&#xff1a; 一、 功能区显示设置问题 1、原因&#xff1a; WPS 的功能区显示可能…...

【软考-架构】13.3、架构复用-DSSA-ABSD

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 1、软件架构复用2、特定领域软件架构DSSADSSA的三个基本活动参与DSSA的四种角色人员建立DSSA的过程三层次模型 考试真题第一题第二题 3、基于架构的软件开发ABSD的软件开发…...

K8S_ResourceQuota与LimitRange的作用

ResourceQuota 作用详解 资源总量控制&#xff1a;ResourceQuota能对命名空间内的资源使用总量进行限制。在一个Kubernetes集群中&#xff0c;存在多个命名空间&#xff0c;每个命名空间可看作一个独立的工作单元。通过设置ResourceQuota&#xff0c;可以防止某个命名空间过度…...

T101D加固平板电脑:无人机地面站的高效智能控制核心

随着无人机技术在应急救援、农业监测、军事侦察等领域的广泛应用&#xff0c;对地面控制设备的要求也日益提高。鲁成伟业推出的T101D加固平板电脑凭借其高性能、强防护和专业化设计&#xff0c;成为无人机地面站的核心控制终端&#xff0c;为复杂环境下的作业提供了可靠支持。 …...

LLM中的N-Gram、TF-IDF和Word embedding

文章目录 1. N-Gram和TF-IDF&#xff1a;通俗易懂的解析1.1 N-Gram&#xff1a;让AI学会"猜词"的技术1.1.1 基本概念1.1.2 工作原理1.1.3 常见类型1.1.4 应用场景1.1.5 优缺点 1.2 TF-IDF&#xff1a;衡量词语重要性的尺子1.2.1 基本概念1.2.2 计算公式1.2.3 为什么需…...

【基于Servlet技术处理表单】

文章目录 一、实验背景与目的二、实验设计与实现思路1. 功能架构2. 核心代码实现3. 测试用例 总结 一、实验背景与目的 本次实验旨在深入理解Servlet工作原理&#xff0c;掌握JSP与Servlet的协同开发&#xff0c;实现前端表单与后端数据处理的交互。具体目标包括&#xff1a;设…...

【差分隐私相关概念】瑞丽差分隐私(RDP)-瑞丽散度约束了贝叶斯因子后验变化

分步解释和答案&#xff1a; 在Rnyi差分隐私&#xff08;RDP&#xff09;框架中&#xff0c;通过贝叶斯因子和Rnyi散度的关系可以推导出关于后验变化的概率保证。以下是关键步骤的详细解释&#xff1a; 1. 贝叶斯因子的定义与分解 设相邻数据集 D D D 和 D ′ D D′&#x…...

Oracle查询大表的全部数据

2000w的大表 表结构如下&#xff0c;其中id是索引 查询处理慢的写法 List<String> queryLoidForPage(Integer startNum,Integer endNum){try {Connection oracleConnection initBean.oracleConnection;Statement stmt oracleConnection.createStatement();// 4.执行查…...

linux 内核 static-key机制分析

1、static key是什么 Linux内核的 Static Keys机制是一种高效的条件分支优化技术,主要用于在运行时动态启用或禁用特定代码路径,同时‌避免常规条件判断(如 if 语句)的性能开销‌。它通过结合编译时优化和运行时代码修补(如 Jump Label 技术)实现近乎零成本的开关切换,广泛应用…...

【Java学习】Knife4j使用流程

手动添加依赖&#xff0c;并刷新Maven <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.3.0</version> </dependency>在配置文件application.…...

Java 基本操作快速入门:理解与实践

在软件开发的世界里&#xff0c;Java 作为一种广泛使用的编程语言&#xff0c;已经成为构建企业级应用、移动应用甚至大型系统的主力军。对于任何一位初学者来说&#xff0c;理解 Java 的基本操作是学习编程的第一步。从变量声明到控制流的结构&#xff0c;每一个基础知识点都是…...

jetson orin nano 开发板conda 的 base 环境在 shell 启动时自动激活

使用MobaXterm_Personal_23.0.exe 连接jetson开发板时默认是不进入base环境的 1.输入此命令nano ~/.bashrc看到图1后把conda activate 你的环境名 放到图中标记位置 然后保存退出&#xff1a; Ctrl O 回车保存 Ctrl X 退出编辑器 输入此命令后&#xff0c;source ~/.bas…...

【高中数学/指数/对数】同构六君子之 x/e^x/lnx组合曲线

yx*e^x ye^x/x yx/e^x yx*lnx ylnx/x yx/lnx END...

Golang|在线排查协程泄漏

根据我们的代码&#xff0c;前5毫秒内&#xff0c;每隔1毫秒就会来一个请求&#xff0c;5毫秒之后由于前面的协程执行完&#xff0c;后面又会来新的协程&#xff0c;所以协程数目会保持稳定但是代码一运行&#xff0c;协程数量一直增长&#xff0c;发生了协程泄漏 我们可以list…...

健康养生指南

在快节奏的现代生活中&#xff0c;健康养生愈发重要&#xff0c;它是我们享受美好生活的基石。​ 饮食是养生的关键一环。秉持均衡原则&#xff0c;每日保证谷类、蔬果、优质蛋白等各类食物合理摄入。多吃富含膳食纤维的粗粮&#xff0c;像燕麦、糙米&#xff0c;可促进肠道蠕…...

实验二 两个多位十进制数相加实验

一、实验目的 1&#xff0e;掌握汇编子程序的编写方法。 2&#xff0e;掌握循环程序的设计方法。 二、实验内容 将键盘输入的两个5位十进制数相加&#xff0c;在屏幕上显示相加的结果。 三、实验要求 1&#xff0e;显示格式&#xff1a;被加数加数相加的结…...

多模态大模型MLLM基础训练范式 Pre-train + Instruction FineTuning

多模态大模型Pre-train 为了在图文嵌入空间中更好地对齐视觉和文本信息。为此&#xff0c;使用图像-文本对&#xff08;image-caption style data&#xff09;&#xff0c;表示为 ( X , Y a ) (\mathbf{X}, Y_a) (X,Ya​)&#xff0c;其中&#xff1a; X \mathbf{X} X&#x…...

2025.4.15六年之约day11

六年之约已经断更好几个月了&#xff0c;当初六年之约是当做日记来写的&#xff0c;然后被同事刷到了&#xff0c;被谈及的时候挺尴尬的&#xff0c;毕竟里面记录的是我的所思所想。在互联网下&#xff0c;是不适合发布日记的&#xff0c;但我又爱记录所思所想所做。 不知道距…...

Rust学习之实现命令行小工具minigrep(二)

Rust学习之实现命令行小工具minigrep&#xff08;二&#xff09; Rust学习之实现命令行小工具minigrep&#xff08;一&#xff09; 前言 继续记录一下Rust 语言学习过程&#xff0c;上次写了一个命令行查找字符串的小项目minigrep。学习完了闭包&#xff08;Closures&#x…...

Access Token 和 Refresh Token 的双令牌机制,维持登陆状态

目录 1. 双令牌机制2. 工作流程3. 客户端实现4. 服务器端实现5. 注意事项拓展&#xff1a;Token在客户端安全存储的几种方式 为了实现客户端在 JWT Token 过期后自动更新 Token&#xff0c;通常会采用 Access Token 和 Refresh Token 的双令牌机制。以下是实现自动更新 Token 的…...

前端 -- uni-app 的 splitChunks 分包详解与实战!

全文目录: 开篇语📝 前言📖 目录🌟 什么是 splitChunks?🛠 splitChunks 的核心原理📂 文件拆分的机制⚙️ 配置选项✨ splitChunks 实战案例1️⃣ 项目初始化2️⃣ 编写页面逻辑3️⃣ 配置 splitChunks4️⃣ 查看效果🧩 splitChunks 的高级用法与优化🔍 优化一…...

【教程】检查RDMA网卡状态和测试带宽 | 附测试脚本

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 检查硬件和驱动状态 测试RDMA通信 报错修复 对于交换机的配置&#xff0c;可以看这篇&#xff1a; 【教程】详解配置多台主机通过交换机实现互…...

OSPF的拓展配置

OSPF的拓展配置 1&#xff0c;ospf的手工认证 1&#xff0c;接口认证 r1: display ospf peer brief &#xff08;查看邻居关系&#xff09; int g 0/0/0 ospf authentication-mode md5 1 cipher 123456 display this r2: ospf authentication-mode md5 1 plain 12345…...

http、https、TLS、证书原理理解,对称加密到非对称加密问题,以及对应的大致流程

http 超文本传输协议 存在问题&#xff1a; 安全性、隐私性、数据完整性 易被中间人&#xff08;黑客之类的&#xff09;对数据进行劫持、篡改、隐私泄露 引出了 https &#xff08;source&#xff09; http 在网络模型中的应用层 Application > transport > inter…...

vscode格式化为什么失效?自动保存和格式化(Prettier - Code formatter,vue-format)

vscode自动格式化保存最终配置 博主找了好多的插件&#xff0c;也跟着教程配置了很多&#xff0c;结果还是没有办法格式化&#xff0c;最终发现了一个隐藏的小齿轮&#xff0c;配置完后就生效了 关键步骤 关键配置 一定要点小齿轮&#xff01;&#xff01;&#xff01; 这个小…...

两类中断控制器处理流程_链式和层级

今天呢&#xff0c;我们来用一种新的视角去看中断子系统&#xff0c;然后仿照人家的方法去写一个虚拟的中断子系统&#xff0c;我们先来讲讲链式和层级&#xff1a; 链式中断控制器(chained)&#xff1a; 上图中&#xff0c;左边的"chained intc"就是链式中断控制器…...

软件测试之接口测试用例设计

1.接口测试用例设计简介 我们对系统的需求分析完成之后&#xff0c;即可设计对应的接口测试用例&#xff0c;然后用接口测试用例进行接口测试。接口测试用例的设计也需要用到黑盒测试方法&#xff0c;其与功能测试用例设计的方法类似&#xff0c;接口测试用例设计中还需要增加…...

猫咪如厕检测与分类识别系统系列【九】视频检测区域在线绘制+支持摄像头+网络摄像头+整体构建【上】

前情提要 家里养了三只猫咪&#xff0c;其中一只布偶猫经常出入厕所。但因为平时忙于学业&#xff0c;没法时刻关注牠的行为。我知道猫咪的如厕频率和时长与健康状况密切相关&#xff0c;频繁如厕可能是泌尿问题&#xff0c;停留过久也可能是便秘或不适。为了更科学地了解牠的如…...

MySQL-运维篇

日志主从复制分库分表读写分离 日志 在任何一种数据库当中都会有各种各样的日志&#xff0c;这些日志记录着数据库运行的各个方面 错误日志 这个命令可以查看文件尾部的50行日志&#x1f446; 这个命令是实时输出&#x1f446; 二进制日志 第三个是索引文件&#xff0c;里面…...