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

从明文裸奔到密钥长城:HTTPS加密全链路攻防与CA信任锚点构建

        前言:本文将从HTTP的隐患出发,深入剖析HTTPS如何通过加密算法数字证书信任链机制重塑网络通信的安全边界。我们将探讨协议的证书颁发机构(CA)的信任逻辑,以及HTTPS在性能与安全之间的平衡艺术。将帮助您更从容地应对网络威胁,在数字化浪潮中守护每一份数据的价值。

目录

http安全问题

一、密码学基本要素

二、加密方式

1.对称加密

2.非对称加密

三、数据摘要(数据指纹)

四、加密方案

方案一:只使用对称秘钥

方案二:只使用非对称秘钥

方案三:双方都用非对称加密

方案四:非对称+对称

五、证书机制

1.模拟黑客攻击

2.数据签名

3.CA机构

六、最优加密方案

方案五:非对称+对称+证书验证


http安全问题

HTTP的三大安全隐患

① 明文传输(无加密)

  • 问题:HTTP传输的所有数据(如登录密码、信用卡号、聊天记录)均以明文形式在网络中传输,攻击者可轻易窃听(如通过抓包工具Wireshark)。

  • 示例:登录信息泄露

在网页中使用GET请求方法上传登录信息时账号和密码是显露在外面的,如下:

或者抓包后使用Fiddler获取协议报文同样能获取到登录信息,如下抓取到的GET请求方法的报文:

抓取到的POST请求报文:

② 无身份验证

  • 问题:HTTP无法验证通信双方的真实身份。攻击者可伪装成服务器(钓鱼网站)或客户端(伪造请求)。

  • 示例:公共WiFi中,攻击者伪造一个与目标网站相同的HTTP页面,诱导用户输入敏感信息。

③ 数据易篡改

  • 问题:HTTP数据在传输过程中可被中间人修改(如插入广告、劫持内容),且接收方无法察觉。

  • 示例

    • 运营商在HTTP页面中注入弹窗广告。

    • 攻击者篡改软件下载链接,替换为恶意程序。

        https协议在应用层和传输层之间加一个对数据加密,解密的功能,实际上属于应用层。即TLS,SSL。TLS(传输层安全协议)和 SSL(安全套接层)是用于保护网络通信安全的加密协议。它们通过在客户端(如浏览器)和服务器之间建立加密连接,确保传输的数据不被窃听或篡改。

为什么能对数据窃取或篡改:

        在客户端与服务器进行通信时要先经过运营商(中间人),所以数据是暴露在外面的。除此之外还会被黑客恶意攻击。

一、密码学基本要素

1.明文

  • 定义:未经加密的原始信息,可以直接被人类或机器理解。

  • 特点

    • 可读性:内容清晰明了,无需解密即可阅读(如文字、数字、文件)。

    • 风险:如果明文在传输或存储中被截获,信息会完全暴露。

  • 示例

    • 你发送的短信:“明天下午3点见面。”

    • 保存在电脑中的密码文件:“password123”。

    • HTTP 协议传输的网页内容(未加密的网站)。

2.密文

  • 定义:明文通过加密算法处理后生成的“乱码”,无法直接理解。

  • 特点

    • 不可读性:必须通过解密才能还原为明文。

    • 安全性:即使被截获,攻击者也无法直接获取原始信息(除非破解加密)。

  • 示例

    • 明文“123456”经 AES 加密后变为:U2FsdGVkX1+2Z1z7Vp6N8g==

    • HTTPS 协议传输的加密数据(如银行交易信息)。

    • 经过加密的 Wi-Fi 通信内容。

3.密钥

什么是密钥?

  • 通常是一串随机生成的二进制数据(如 256 位随机数),用于加密算法。
  • 不直接由用户记忆,而是由系统自动生成和管理。

        与密码的区别:密码是用户自定义的字符串(如 P@ssw0rd123),用于身份验证。安全性较低(易被猜测或暴力破解),通常需通过算法(如 PBKDF2)转换为密钥。

密钥怎么使用?

  • 加密:明文 + 加密算法 + 密钥 → 密文。

  • 解密:密文 + 解密算法 + 密钥 → 明文。

  • 没有密钥,加密数据无法被还原(除非暴力破解,但现代强加密算法几乎不可行)。

密钥类型:

  • 公钥(Public Key):公开,可在网络中传输,能被中间人获取。

  • 私钥(Private Key):严格保密,保存在本地,不能在网络中传输。

        这部分涉及密码学和数学,我们不做更细节的探讨。像类似加密解密的操作并不是互联网特有的,而是生活中普遍存在的。

二、加密方式

1.对称加密

  • 场景:你有一把钥匙,用它锁上房门(加密),再用同一把钥匙打开门锁(解密)。

举一个不恰当的例子,如:a = 10,b=20,temp = a^b
其中a:数据b:密钥temp:密文^:加密算法
加密与解密:加密:temp = a^b解密:a = temp^b

    特点:密钥相同,速度快效率高,算法公开。

    2.非对称加密

            非对称加密:两个密钥公开和私有,即公钥和私钥,可以是公钥加密 私钥解密,或反过来,私钥加密 公钥解密。

    场景:邮局提供两种钥匙:

    • 公钥:任何人都可以将信件投进你的信箱(加密)。

    • 私钥:只有你有信箱的钥匙,能取出信件(解密)。

    特点:算法复杂,效率低。

    三、数据摘要(数据指纹)

            数据指纹,其基本原理是利用单向散列函数(Hash 函数)对信息进行运算,生成一串固定⻓度的数字摘要。 数字指纹并不是一种加密机制,因为它是不可逆的,无法进行解密(也无需解密),它的意义在于可以用来判断数据有没有被篡改。如果数据被篡改过,尽管只是有一点点的改动,数据摘要都大有不同。

            数据摘要具有唯一性,和人的指纹一样,所以也叫数据指纹。

            数据通过哈希算法生成的散列值就是数据摘要,在将数据摘要进行加密就是数据签名,关于数据签名的使用在下文详细讲解。

    应用场景1:百度秒传

    应用场景2:数据库对私有信息的保护

    四、加密方案

    说明:

    • server:服务器
    • client:客户端

    方案一:只使用对称秘钥

            server通常就只有一个,而client可以有很多,各个客户端就需要有独立的密钥,也就是每连接一个客户端,就要新生成一个密钥。那么服务器怎么得知客户端生成的密钥呢?

    通过网络传输吗?那么怎么保证密钥传输的安全呢?进行加密?

            这已经变成一个鸡生蛋,蛋生鸡的问题了,没有可行性(首次无法同步密钥)。我们来看方案二。

    方案二:只使用非对称秘钥

            server把公钥给client,给黑客获取也没关系,因为它并不知道私钥,client用公钥生成密文,服务器用私钥解密。

    貌似可以解决数据安全问题,但依旧有问题。

    1. server用私钥加密数据给client,client用公钥解密。但在此之前需要进行秘钥同步,即server需要把公钥传给client,而公钥本身是明文传送,黑客可以获取到。只是单向数据安全。
    2. 运算速度慢,效率低。

    如下图解:

    方案三:双方都用非对称加密

    双方都有各自的公钥和私钥,用对方的公钥加密,用自己的私钥解密。

    首次交互,需要进行公钥交换。

    貌似可行,同样的有两个问题:

    1. 不安全。具体什么问题这里先不管,看完下文就明白了。
    2. 算法复杂,通信很慢。

    方案四:非对称+对称

            通过非对称密钥进行密钥协商生成对称密钥,然后使用对称密钥进行加密和解密,主要解决通信效率问题。

            原理:client请求到server的公钥s,client生成自己的对称密钥x,再用公钥s对密钥x加密,传输给server,server用私钥s'解密得到密钥x,此后双方使用对称密钥x进行通信。

            该方案比前三者好多了,看似无懈可击,其实还有问题,要知道道高一尺魔高一丈,我们继续往下看。


    五、证书机制

    1.模拟黑客攻击

            对于方案四,客户端与服务器首次通信时要完成公钥协商,生成对称密钥,此后都使用对称密钥,对称密钥不会在网络中传输。所以黑客只有这一次机会。

            如何攻破?其实很简单,黑客只需要在传输公钥时进行调包即可,如下:

            黑客为了不被发现,并且为了让客户端与服务器能正常通信,窃取到密钥x后他会再使用密钥s进行加密发送给服务器。黑客悄无声息的拿到了密钥,没人能察觉。

    既然方案4能被攻破,那么方案1,2,3就更不用说了,不攻自破。

    主要问题:client无法辨别公钥是否合法,它只管一个劲的接收。

    接下来对方案四进行改进,主要解决如何让client得知自己收到的“公钥”是否合法的问题。


    2.数据签名

            client判断“公钥”是否合法实际上就是判断数据是否被篡改过,不知道大家是否熟悉数据篡改这个词。上文所讲的数据指纹就是来验证数据是否被篡改的,已经做好了铺垫。

    • 数据指纹:散列函数对数据进行处理生成的散列值。
    • 签名:对数据指纹进行加密。

            假设签名者:公钥Q,私钥Q'。这里暂且不考虑签名者是谁,要注意的是这里的公钥和私钥是单独新引入的,不要与客户端和服务器的密钥混淆。

            最后把原始数据和签名拼在一起。发给客户端。

    1. 客户端拿到数据和签名。
    2. 用公钥Q对签名解密拿到数据指纹。
    3. 把数据用相同的散列函数生成数据指纹。
    4. 把两个数据指纹进行对比,判断数据是否被修改。

            公钥Q所以人都知道,是彻底公开的,内置在客户端中。而公钥Q'是受严格保护的签名者持有。这是一种权利,其他人只认Q,对签名者绝对的信任。

    现在模拟一下黑客攻击:

            数据签名是传输在网络中的,黑客获取到数据签名后如果对数据篡改,客户端能校验出来。那么黑客把整个签名改了呢?即把篡改的数据重新生成签名。

            不好意思客户端只认Q,用自己内置的公钥Q去解密。而黑客并不知道Q',无法生成对应的签名。

            签名者称为CA机构,CA机构是互联网信任体系的基石,通过签发和管理数字证书,确保网络实体(如网站、设备)的身份可信和通信安全。


    3.CA机构

            此后在密钥协商时client得到的不仅仅是一个签名,而是一个server的证书。而证书是由开发者向CA机构申请得到的。

    除了签名,证书内还包含了公钥,域名等明文信息。如下:

    • 签名:如上图第一行,对明文数据做哈希散列,然后进行加密。
    • 明文信息:数据。
    • 证书本质:明文数据+签名

    证书就如身份证, 证明服务端公钥的权威性。

            数字证书保证了公钥合法性,浏览器(客户端),一般都要内置可信的CA机构或着授权的子机构的公钥。


    六、最优加密方案

    方案五:非对称+对称+证书验证

    • 建立https服务器,先向CA机构申请证书。CA机构签发证书。
    • 服务上线。
    • client发起请求,server返回证书,client验证公钥合法性。
    • 公钥可信任,形成对称密钥。
    • 双方使用对称密钥通信。

    CSR在线生成工具

            实际上签名时不进行数据摘要,直接对数据加密也是可行的。为什么不直接加密, 而是要先 hash 形成摘要?

    • 缩⼩签名密文的⻓度,加快数字签名的验证签名的运算速度。

    总结:

    HTTPS 工作过程中涉及密钥有三组:

    • 第一组(非对称加密):用于校验证书是否被篡改。 服务器持有私钥(私钥在形成 CSR 文件与申请证书时获得), 客户端持有公钥(操作系统包含了可信任的 CA 认证机构有哪些,同时持有对应的公钥)。服务器在客户端请求时, 返回携带签名的证书,客户端通过这个公钥进行证书验证,保证证书的合法性, 进一步保证证书中携带的服务端公钥权威性。
    • 第⼆组(非对称加密):用于协商生成对称加密的密钥。 客户端用收到的 CA 证书中的公钥(是可被信任的)给随机生成的对称加密的密钥加密,传输给服务器,服务器通过私钥解密获取到对称加密密钥。
    • 第三组(对称加密):客户端和服务器后续传输的数据都通过这个对称密钥加密解密。

    非常感谢您能耐心读完这篇文章。倘若您从中有所收获,还望多多支持呀!74c0781738354c71be3d62e05688fecc.png

    相关文章:

    从明文裸奔到密钥长城:HTTPS加密全链路攻防与CA信任锚点构建

    前言:本文将从HTTP的隐患出发,深入剖析HTTPS如何通过加密算法、数字证书与信任链机制重塑网络通信的安全边界。我们将探讨协议的证书颁发机构(CA)的信任逻辑,以及HTTPS在性能与安全之间的平衡艺术。将帮助您更从容地应…...

    C# WPF 颜色拾取器

    x:Name=Color Picker 语言:C# WPF 下载:https://download.csdn.net/download/polloo2012/90780640 主界面 颜色库 关于我们 颜色拾取器是一种能够帮助用户获取颜色信息,并进行颜色选择、识别和调整的工具,以下将从其常见类型、使用场景及部分软件工具这几个维度展开介绍…...

    MySQL关于锁的面试题

    目录 1.了解过 MySQL 死锁问题吗? 2.什么是线程死锁?死锁相关面试题 2.1 什么是死锁: 2.2 形成死锁的四个必要条件是什么? 2.3 如何避免线程死锁? 3. MySQL 怎么排查死锁问题? 4.Java线上死锁问题如…...

    亚远景-ASPICE vs ISO 21434:汽车软件开发标准的深度对比

    ASPICE(Automotive SPICE)和ISO 21434是汽车软件开发领域的两大核心标准,分别聚焦于过程质量与网络安全。以下从核心目标、覆盖范围、实施重点、协同关系及行业价值五个维度进行深度对比分析: 一、核心目标对比 ASPICE&#xff1…...

    第5讲、Transformer 编码器(Encoder)处理过程详解

    🔍 Transformer 编码器(Encoder)处理过程详解 Transformer Encoder 是一个由 N 层(一般为 6 层)堆叠而成的模块结构。每一层的本质是两个核心子模块: 多头自注意力(Multi-Head Self-Attention…...

    Flutter Drawer 详解

    目录 一、引言 二、Drawer 的基本用法 三、主要属性 四、常见问题与解决方案 4.1 手势冲突处理 4.2 多级导航管理 4.3 响应式布局适配 五、最佳实践建议 5.1 性能优化 5.2 无障碍支持 5.3 跨平台适配 六、结论 相关推荐 一、引言 在移动应用开发中,侧边…...

    游戏引擎学习第263天:添加调试帧滑块

    运行游戏,开始今天的开发工作。 我们继续游戏代码基础上进行重构,目标是实现更多的性能分析界面功能,尤其是调试用的用户界面。 目前运行游戏并打开性能分析窗口后,发现界面功能上还有不少缺陷。现在的界面可以向下钻取查看具体…...

    Hadoop客户端环境准备

    hadoop集群我们配置好了,要与它进行交互,我们还需要准备hadoop的客户端。要分成两步:下载hadoop包、配置环境变量。 1. 找到资料包路径下的Windows依赖文件夹,拷贝hadoop-3.1.0到非中文路径(比如d:\hadoop-3.1.0&#…...

    当“信任”遇上“安全”:如何用Curtain Logtrace记录文件操作活动 守护团队与数据的双重底线?

    你是否也有过这样的担忧? 团队成员在处理敏感数据时是否遵守了公司规范? 某份被篡改或外泄的文档,到底发生了什么? 为了数据安全而频繁加密、限制下载,却反过来打击了员工的工作积极性…… 如何在不伤害团队信任的…...

    如何进行室内VR全景拍摄?

    如何进行室内VR全景拍摄? 室内VR全景拍摄作为先进的视觉技术,能够为用户提供沉浸式的空间体验。本文介绍如何进行室内VR全景拍摄,并阐述众趣科技在这一领域的技术支持和服务优势。 室内VR全景拍摄基础 1. 室内VR全景拍摄概述 室内VR全景拍…...

    一文走进GpuGeek | conda常用命令

    conda 常用命令 查看conda版本 conda --version 查看conda信息 conda info 更新conda自身到最新版本,同时也会更新其它包 conda update conda conda更新指定包,这里更新通过conda安装的zlib包 conda update zlib 列出所有虚拟环境 conda env li…...

    Consumer Group的作用是什么?Rebalance的触发条件有哪些? (实现消费者负载均衡;消费者加入/离开、订阅Topic变化等)

    好的,我现在需要回答用户关于Kafka Consumer Group和Rebalance的问题。首先,用户问的是Consumer Group的作用以及Rebalance的触发条件。根据之前的对话历史,用户已经了解了Kafka的基本组件、消息保留策略、顺序性保证等,现在的问题…...

    【计算机视觉】OpenCV实战项目:Long-Exposure:基于深度学习的长时间曝光合成技术

    Long-Exposure:基于深度学习的长时间曝光合成技术 项目概述与技术背景项目核心功能技术原理 环境配置与安装硬件要求建议详细安装步骤可选组件安装 实战应用指南1. 基础使用:视频转长曝光2. 高级模式:自定义光轨合成3. 批量处理模式 技术实现…...

    CentOS 7 安装OpenJDK 17 JRE

    CentOS 7 自带的java 版本为:java version "1.8.0_311", 有些软件的运行需要更高的java版本。CentOS 7 自带的默认仓库里 没有 OpenJDK 17,但是 Adoptium 项目(前身 AdoptOpenJDK)提供了稳定的 OpenJDK 17 版…...

    C++从入门到实战(十三)C++函数模板与类模板初阶讲解

    C从入门到实战(十三)C函数模板与类模板初阶讲解 前言一、为什么需要模板1. 函数重载的问题2. 泛型编程和模板的作用 二、函数模板2.1 函数模板格式2.2 函数模板的原理2.3 函数模板的实例化(1)隐式实例化:(2…...

    CentOS服务器中如何解决内存泄漏问题?

    内存泄漏并不是“爆炸性内存飙升”,而是程序申请了内存但没有释放,造成系统可用内存逐渐减少,直到用光。 表现形式: 系统空闲内存越来越少;swap频繁被占用;某些服务响应变慢甚至挂掉;重启服务后内存才释放。 内存泄漏的根源在哪…...

    【Java项目脚手架系列】第三篇:Spring MVC基础项目脚手架

    【Java项目脚手架系列】第三篇:Spring MVC基础项目脚手架 前言 在前面的文章中,我们介绍了Maven基础项目脚手架和JavaWeb基础项目脚手架。今天,我们将介绍Spring MVC项目脚手架,这是一个用于快速搭建Web应用的框架。 什么是Spr…...

    chili3d调试笔记12 deepwiki viewport svg雪碧图 camera three.ts

    xiangechen/chili3d | DeepWiki viewport阅读 🧠deep 我要把模型投影成dxf导出有什么办法 引用lookat 截图是如何实现的 明天接着搞 ---------------------------------------------------------------- 截图没什么用 搞个工程图模块可能才行 一个文件一行 忘…...

    tinyrenderer笔记(Shader)

    tinyrenderer个人代码仓库:tinyrenderer个人练习代码 前言 现在我们将所有的渲染代码都放在了 main.cpp 中,然而在 OpenGL 渲染管线中,渲染的核心逻辑是位于 shader 中的,下面是 OpenGL 的渲染管线: 蓝色是我们可以自…...

    【奔跑吧!Linux 内核(第二版)】第1章:Linux 系统基础知识

    笨叔 陈悦. 奔跑吧 Linux 内核(第2版) [M]. 北京: 人民邮电出版社, 2020. 文章目录 Linux 系统的发展历史Linux 发行版Red Hat LinuxDebian LinuxSuSE Linux优麒麟 Linux Linux 内核介绍宏内核和微内核Linux 内核概貌 Linux 系统的发展历史 Linux 系统诞…...

    ​Spring + Shiro 整合的核心要点及详细实现说明

    在 Spring 项目中集成 Apache Shiro 可以实现轻量级的安全控制(认证、授权、会话管理等)。以下是 ​Spring Shiro 整合的核心要点及详细实现说明: 一、Spring 与 Shiro 整合的核心组件 ​组件​​作用​ShiroFilterFactoryBean创建 Shiro 过…...

    已经写好论文的AI率降低

    视频演示 https://www.bilibili.com/video/BV1v4VpzgEdc 提示词 你是我专门请来的“降维写作助手”,专门干一件事:把 AI 写得太“像 AI”的文字改得更像人写的。我们主要是处理论文、创作类内容,目标就是:不让检测工具一眼识破…...

    AI教你学VUE——Deepseek版

    一、基础阶段:打好Web开发基础 HTML/CSS基础 学习HTML标签语义化、CSS布局(Flex/Grid)、响应式设计(媒体查询、REM/VW单位)。资源推荐: MDN Web文档(免费):HTML | CSS实战…...

    卷积神经网络基础(五)

    6.3 Softmax-with-Loss 层 我们最后介绍输出层的softmax函数,之前我们知道softmax函数会将输入值正规化之后再输出。在手写数字识别的例子中,softmax层的输出如下: 输入图像通过Affi ne层和ReLU层进行转换,10个输入通过Softmax层…...

    Go语言——string、数组、切片以及map

    一、string、数组、切片代码 package mainimport "fmt"// 定义结构体 type student struct {id intname stringage intscore float32 }func main() {// 使用var声明切片var slice1 []intslice1 append(slice1, 1)slice1 append(slice1, 2)slice1 append(sl…...

    线性回归有截距

    In [ ]: ∑ i 1 m ( y i − x i T w ) 2 \sum _{i1}^{m}(y_{i}-x_{i}^{T}w)^{2} i1∑m​(yi​−xiT​w)2 w ^ ( X T X ) − 1 X T y \hat {w}(X^{T}X)^{-1}X^{T}y w^(XTX)−1XTy In [ ]: 1 #如果有截距,求解时,需要梯度下降法求解w 和b …...

    【基础】Python包管理工具uv使用全教程

    一、uv简介 uv 是由 Astral(前身为 Basis)团队开发的 Python 包安装器和解析器,完全使用 Rust 语言编写。与传统 Python 工具不同,uv 将多个工具的功能整合到一个高性能的解决方案中,旨在提供更现代、更高效的 Python…...

    事务(transaction)-上

    事务概述 食物是一个最小的工作单元。在数据库当中,事务表示一件完整的事儿。一个业务的完成可能需要多条DML语句共同配合才能完成,例如转账业务,需要执行两条DML语句,先更新张三账户的余额,再更新李四账户的余额&…...

    Python训练打卡Day17

    无监督算法中的聚类 知识点 聚类的指标聚类常见算法:kmeans聚类、dbscan聚类、层次聚类三种算法对应的流程 实际在论文中聚类的策略不一定是针对所有特征,可以针对其中几个可以解释的特征进行聚类,得到聚类后的类别,这样后续进行解…...

    【爬虫】码上爬第6题-倚天剑

    堆栈入手: 全部复制的话,注意修改一些必要在地方: 通过s函数来获取请求头的加密参数 通过xxxxoooo来获取解密后的数据 js代码关键点: python代码我推荐使用这个网站: Convert curl commands to code 根据生成的代码…...

    自定义SpringBoot Starter-笔记

    SpringBoot Starter的介绍参考: Spring Boot Starter简介-笔记-CSDN博客。这里介绍如何自定义一个springBoot Starter。 1. 项目结构 创建一个 Maven 项目,结构如下: custom-spring-boot-starter-demo/ ├── custom-hello-jdk/ # jdk模…...

    一周学会Pandas2 Python数据处理与分析-Pandas2数据类型转换操作

    锋哥原创的Pandas2 Python数据处理与分析 视频教程: 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili Pandas 提供了灵活的方法来处理数据类型转换,以下是常见操作及代码示例: 1. 查看数据类型 …...

    Java中常见的问题

    1. SSO中的Cookie/Token生成与安全传递 生成Cookie/Token: Cookie:服务器通过Set-Cookie响应头生成,包含用户ID、过期时间等,需设置HttpOnly和Secure属性防止XSS和中间人攻击。Token(如JWT):使…...

    【JEECG】BasicTable内嵌Table表格错位

    功能说明&#xff1a; 解决代码生成后&#xff0c;本地内嵌Table表格样式错位。 优化前&#xff1a; 优化后&#xff1a; 解决方法&#xff1a; 对应的List.vue页面增加css样式调整。 <style lang"less" scoped>//内嵌表格margin边距覆盖:deep(.ant-table-…...

    人工智能 计算智能模糊逻辑讲解

    引言 在计算智能&#xff08;Computational Intelligence&#xff09;领域&#xff0c;模糊逻辑&#xff08;Fuzzy Logic&#xff09;作为一种处理不确定性与模糊性信息的数学工具&#xff0c;自 1965 年由洛夫特扎德&#xff08;Lotfi Zadeh&#xff09;提出以来&#xff0c;…...

    基于SSM实现的健身房系统功能实现一

    一、前言介绍&#xff1a; 1.1 项目摘要 随着社会的快速发展和人们健康意识的不断提升&#xff0c;健身行业也在迅速扩展。越来越多的人加入到健身行列&#xff0c;健身房的数量也在不断增加。这种趋势使得健身房的管理变得越来越复杂&#xff0c;传统的手工或部分自动化的管…...

    spring详解-循环依赖的解决

    Spring循环依赖 重点提示&#xff1a; 本文都快写完了&#xff0c;发现“丈夫” 的英文是husband… 在“②有AOP循环依赖” 改过来了&#xff0c;前面用到的位置太多了就没改。我是说怎么idea的hansband英文下面怎么有波浪线。各位能够理解意思就行&#xff0c;英文拼写不要过…...

    【大模型面试每日一题】Day 10:混合精度训练如何加速大模型训练?可能出现什么问题?如何解决?

    【大模型面试每日一题】Day 10&#xff1a;混合精度训练如何加速大模型训练&#xff1f;可能出现什么问题&#xff1f;如何解决&#xff1f; &#x1f4cc; 题目重现 &#x1f31f;&#x1f31f; 面试官&#xff1a;混合精度训练如何加速大模型训练&#xff1f;可能出现什么问…...

    [学习]RTKLib详解:rtkcmn.c与rtkpos.c

    文章目录 Part A、Rrtkcmn.c一、总体功能二、关键API列表三、核心算法实现四、函数功能与参数说明1. uniqnav2. lsq3. filter4. matmul5. satazel6. ionmapf7. geodist8. timeadd9. dgetrf_ / dgetri_&#xff08;LAPACK接口&#xff09; 五、工作流程说明4.1 模块在RTKLib中的…...

    cookie/session的关系

    什么是cookie&#xff0c;session 我们平时去医院看病时&#xff0c;从进医院那一刻&#xff0c;我们最开始要做的就是挂号&#xff08;需要我们填写表格&#xff0c;记录一些核心信息&#xff0c;医生会把这些信息录入电脑&#xff0c;并给我办一个就诊卡&#xff0c;卡里面只…...

    Linux(十四)进程间通信(IPC),管道

    一、进程间通信 &#xff08;一&#xff09;系统介绍进程间通信 进程间通信&#xff08;IPC&#xff09;介绍 小编插入的这篇文章详细介绍了进程间通信的一些内容&#xff0c;大家可以一起学习。 &#xff08;二&#xff09;进程间通信的方法 1、管道 2、信号量 3、共享…...

    Nmap 工具的详细使用教程

    Nmap&#xff08;Network Mapper&#xff09;是一款开源且功能强大的网络扫描和安全审计工具。它被广泛用于网络发现、端口扫描、操作系统检测、服务版本探测以及漏洞扫描等。 官方链接: Nmap 官方网站: https://nmap.org/Nmap 官方文档 (英文): https://nmap.org/book/man.h…...

    Vue 自定义指令输入校验过滤

    /*** 过滤字符串* param {*} filterCharRule* param {*} newVal* returns*/ function filterCharForValue(filterCharRule, newVal) {if(!filterCharRule || !newVal) returnconst isArray filterCharRule instanceof Arrayconst isRegExp filterCharRule instanceof RegExpi…...

    OpenGl实战笔记(2)基于qt5.15.2+mingw64+opengl实现纹理贴图

    一、作用原理 1、作用&#xff1a;将一张图片&#xff08;纹理&#xff09;映射到几何体表面&#xff0c;提升视觉真实感&#xff0c;不增加几何复杂度。 2、原理&#xff1a;加载图片为纹理 → 上传到 GPU&#xff1b;为顶点设置纹理坐标&#xff08;如 0~1 范围&#xff09;&…...

    tinyrenderer笔记(透视矫正)

    tinyrenderer个人代码仓库&#xff1a;tinyrenderer个人练习代码 引言 还要从上一节知识说起&#xff0c;在上一节中我为了调试代码&#xff0c;换了一个很简单的正方形 obj 模型&#xff0c;配上纹理贴图与法线贴图进行渲染&#xff0c;得了下面的结果&#xff1a; what&…...

    c++类【发展】

    类的静态成员&#xff08;用static声明的成员&#xff09;,在声明之外用例单独的语句进行初始化&#xff0c;初始化时&#xff0c;不再需要用static进行限定。在方法文件中初始化。以防重复。 特殊成员函数 复制构造函数&#xff1a; 当使用一个对象来初始化另一个对象…...

    玛格丽特鸡尾酒评鉴,玛格丽特酒的寓意和象征

    玛格丽特鸡尾酒会有独特的风味&#xff0c;而且还会有一个比较吸引人的背后故事。在目前的鸡尾酒界就会占据着很重要的地位&#xff0c;不仅是味蕾的盛宴&#xff0c;同样也会拥有深厚的情感。 玛格丽特由龙舌兰酒、柠檬汁和君度橙酒调制而成&#xff0c;将三者巧妙地结合在一起…...

    关于Java多态简单讲解

    面向对象程序设计有三大特征&#xff0c;分别是封装&#xff0c;继承和多态。 这三大特性相辅相成&#xff0c;可以使程序员更容易用编程语言描述现实对象。 其中多态 多态是方法的多态&#xff0c;是通过子类通过对父类的重写&#xff0c;实现不同子类对同一方法有不同的实现…...

    SecureCrt设置显示区域横列数

    1. Logical rows //逻辑行调显示区域高度的 一般超过50就全屏了 2. Logical columns //逻辑列调显示区域宽度的 3. Scrollback buffer //缓冲区大小...

    【PhysUnits】1 SI Prefixes 实现解析(prefix.rs)

    一、源码 // prefix.rs //! SI Prefixes (国际单位制词头) //! //! 提供所有标准SI词头用于单位转换&#xff0c;仅处理10的幂次 //! //! Provides all standard SI prefixes for unit conversion, handling only powers of 10.use typenum::{Z0, P1, P2, P3, P6, P9, P12, …...