【25软考网工】第六章(3)数字签名和数字证书
博客主页:christine-rr-CSDN博客
专栏主页:软考中级网络工程师笔记
大家好,我是christine-rr !目前《软考中级网络工程师》专栏已经更新二十多篇文章了,每篇笔记都包含详细的知识点,希望能帮助到你!
今天的笔记是是数字签名和数字证书。
目录
一、数字签名
1. 现实生活中的签名
2. 数字签名的定义
3. 数字签名的特点
4. 数字签名的过程
1)签名过程(发送者私钥签名)
2)验证过程(发送者公钥验证)
5. 应用案例
1)例题#签名过程判断
2)例题#签名方式判断
3)例题#签名算法判断
4)例题#签名目的判断
5)例题#签名系统要求
6.知识小结
二、数字证书的作用
1. 案例:非对称加密公钥获取
2. 数字证书类比
3. PKI体系结构
1)注册机构RA
2)证书颁发机构CA
3)证书发布系统
4)证书吊销列表CRL库
4. 应用案例
1)例题:证书真伪和消息验证
2)例题:安全通信
3)例题:X.509密码算法
主要国密算法描述
4)例题:数字证书作用
5)例题:证书有效性验证
6)例题:CA证书描述
5. 证书链
1)证书链的概念
2)例题:证书链互信条件
3)例题:证书链顺序
4)例题:认证证书交换情况
5)例题:证书作用
6.知识小结
一、数字签名
1. 现实生活中的签名
- 防抵赖机制:通过独一无二的笔迹和指纹确认身份,防止事后否认交易行为(如房产买卖)
- 数字世界映射:计算机系统中用数字签名实现相同功能,核心是"私钥签名-公钥验证"机制
2. 数字签名的定义
- 本质:用于确认发送者身份和消息完整性的加密消息摘要
- 密钥使用原则:
- 签名方:必须使用自己的私钥进行签名(A签用A私钥,B签用B私钥)
- 验证方:必须使用签名方的公钥进行验证(验A签用A公钥,验B签用B公钥)
- 生成原理:先对内容做哈希生成摘要(如MD5生成128位),再用RSA等算法对摘要加密
3. 数字签名的特点
- 可信性:与手写签名具有同等法律效力
- 不可伪造:私钥唯一性保证签名难以伪造
- 不可重用:必须"一式一签",禁止重复使用同一签名
- 签名文件不可变:签名后的文件内容不可修改(如合同金额不可篡改)
- 不可抵赖:私钥的唯一持有性使发送者无法否认
- 身份核实:接收方可通过验证确认发送者真实身份
4. 数字签名的过程
1)签名过程(发送者私钥签名)
标准操作流程:
- 对原始数据M(如10M电子合同)生成哈希值(如MD5 128位摘要)
- 用发送者私钥加密哈希值生成签名
- 将签名附加到原始数据上形成带签名的文件
效率优化:直接签大文件(明文)效率低(非对称加密速度慢且有数据膨胀),先由明文生成HASH,哈希后签名是标准做法
2)验证过程(发送者公钥验证)
验证步骤:
- 分离接收到的文件为原始数据M和签名
- 用发送者公钥解密签名得到哈希值A
- 对原始数据重新计算哈希值得哈希值B
- 比较哈希值A与B:
- 一致:证明文件未被篡改且身份真实
- 不一致:文件被篡改或身份不实
5. 应用案例
1)例题#签名过程判断
- 核心考点:签名用私钥,验证用公钥
- 解题关键:A发送信息必须用A的私钥签名,B验证必须用A的公钥
- 答案:(40)B (41)A
2)例题#签名方式判断
- 实现机制:不可否认性依赖发送方私钥的唯一性
- 典型错误:易混淆发送方和接收方的密钥
- 答案:B
3)例题#签名算法判断
- 算法区分:
- 摘要生成:MD5/SHA等哈希算法(选C)
- 摘要加密:RSA/DSA等非对称算法(选D)
- 混淆点:DES/3DES是对称加密算法,不用于签名
- 答案:(42)C (43)D
4)例题#签名目的判断
- 摘要作用:哈希值变化检测篡改(选C防篡改)
- 加密目的:私钥签名实现抗抵赖(选B防抵赖)
- 易错提示:加密内容才是防窃听,此处为签名场景
- 答案:(42)C (43)B
5)例题#签名系统要求
- 关键要求:
- 签名不可重用(排除A、D)
- 签名后文件不可修改(排除C)
- 典型错误:忽略"可修改"选项的陷阱
- 答案:B
6.知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
数字签名原理 | 签名方用私钥签名,验证方用公钥验证;先哈希生成摘要再加密签名 | 私钥签名、公钥验证(易混淆签名/加密方向) | ⭐⭐⭐ |
数字签名功能 | 确认发送者身份(私钥唯一性)、保证消息完整性(哈希防篡改) | 身份认证与完整性双重作用 | ⭐⭐ |
签名生成流程 | 1. 哈希生成消息摘要(如MD5); 2. 用发送者私钥加密摘要(RSA等非对称算法) | 先哈希后加密(效率关键) | ⭐⭐⭐⭐ |
签名验证流程 | 1. 公钥解密签名得摘要A; 2. 重新哈希原文得摘要B; 3. 对比A/B一致性 | 哈希对比验证篡改 | ⭐⭐⭐ |
数字签名特性 | 可信性、不可伪造性、不可重用性、文件不可修改性、不可抵赖性 | 选择题高频考点(如“不可重用”vs“可修改”) | ⭐⭐⭐⭐ |
典型算法组合 | 哈希算法(MD5/SHA)+ 非对称加密(RSA) | 区分哈希与加密算法用途 | ⭐⭐⭐ |
效率优化原因 | 直接签大文件效率低(非对称加密慢且有数据膨胀),哈希后签名是标准操作 | 10M→128bit的哈希优化案例 | ⭐⭐ |
二、数字证书的作用
1. 案例:非对称加密公钥获取
- 风险场景:Alice使用Bob公钥加密时,无法保证公钥真实性(可能被黑客冒充)
- 解决方案:通过数字证书获取可信公钥,证书由CA权威机构签名背书
- 核心功能:证明公钥持有者的真实身份,类似"网络身份证"
2. 数字证书类比
- 身份证类比:
- 相似点:均包含持有者关键信息(身份证含姓名/住址,证书含公钥/用户信息)
- 颁发机构:身份证由公安机关颁发,证书由CA颁发
- 核心组件:
- 必含字段:用户公钥、CA签名(使用MD5+RSA算法)
- 其他字段:序列号、有效期、颁发者、签名算法等
- 验证原理:通过CA公钥验证签名真伪,确保证书内容未被篡改
3. PKI体系结构
此小节更多相关知识可查看我之前的文章【网络安全实验】PKI(证书服务)配置实验_win7版本pki证书的申请及应用-CSDN博客
1)注册机构RA
- 职能:受理证书申请,审查申请人合法性(如企业需提交营业执照),资格审查
- 特殊情形:小型机构可能由CA兼任RA职能
- 工作流程:终端实体(个人/机构)→RA审查→CA颁发
2)证书颁发机构CA
- 核心职能:证书的颁发、管理和撤销
- 与RA关系:RA仅负责资格审查,CA负责最终证书签发
- 高频考点:明确CA与RA的职能划分(选择题常考)
3)证书发布系统
- 功能:负责证书发放,如可以通过用户自己或是通过目录服务。
4)证书吊销列表CRL库
- 定义:CRL(Certificate Revocation List)存储过期/无效证书
- 组成要素:证书发布系统+CRL库构成完整PKI体系
- 考试重点:PKI四大组件(RA/CA/证书/CRL)及其功能
4. 应用案例
1)例题:证书真伪和消息验证
- (41):数字证书必含用户公钥(A选项)
- (42):用CA公钥验证证书签名(A选项)
- (43):用发送方公钥验证消息签名(C选项)
- 答案:(41)A (42)A (43)C
- 关键逻辑:签名验证遵循"私钥签→公钥验"原则
2)例题:安全通信
- 身份认证:数字证书类比身份证(A选项)
- 不可否认:数字签名实现"签字画押"效果(D选项)
- 生活类比:酒店登记用身份证,房产交易用签名
- 答案:(43)A (44)D
3)例题:X.509密码算法
- X.509标准:推荐RSA算法(A选项)
- 国密SM2数字证书:采用椭圆曲线ECC(D选项)
- 记忆点:国际标准RSA vs 国标ECC
- 答案:(43)A (44)D
主要国密算法描述
算法名称 | 算法特征描述 |
SM1 | 对称加密,分组长度和密钥长度都为128比特 |
SM2 | 非对称加密,用于公钥加密算法、密钥交换协议、数字签名算法(椭圆曲线问题) |
SM3 | 杂凑算法,分组512位,输出杂凑值长度为256位 |
SM4 | 对称加密,分组长度和密钥长度都为128比特 |
SM9 | 标识密码算法,支持公钥加密、密钥交换、数字签名等安全功能 |
4)例题:数字证书作用
- 核心作用:绑定实体与公钥(D选项)
- 排除法:证书不涉及私钥(排除A/C)、不直接保障完整性(排除C)
- 答案:D
5)例题:证书有效性验证
- 验证对象:CA的签名(A选项)
- 最终目的:验证网站真伪(D选项)
- 类比:身份证防伪标记验证持有人身份
- 答案:(47)A (48)D
6)例题:CA证书描述
- 内容确认:含用户公钥(排除A/C)
- 签名机制:CA用私钥签名(D选项正确)
- 易错点:混淆签名方与被签名方密钥用途
- 答案:D
5. 证书链
1)证书链的概念
- 证书链定义: 如果用户数量很多,通常由多个CA(证书颁发机构)每个CA为一部分用户发行和签署证书。当两个CA彼此间安全交换了公钥并彼此信任时,它们的证书可以形成证书链。
- 证书链示例: 假设用户A从CA机构X1获得了证书,用户B从X2获得证书。如果X1和X2彼此信任,那么A可以通过证书链X1《X2》X2《B》来获取B的公钥,B也能通过相反的证书链X2《X1》X1《A》来获取A的公开密钥。
2)例题:证书链互信条件
- 审题过程: 题目问的是A、B互信的必要条件。
- 解题思路: 考虑到A、B分别从两个不同的CA获取证书,要实现互信,必须确保两个CA之间建立了信任关系。
- 选项分析:
- A选项(A、B互换私钥): 私钥是保密的,不能互换,故排除。
- B选项(A、B互换公钥): 仅仅互换公钥并不能建立两个CA之间的信任关系,故排除。
- C选项(I1、I2互换私钥): 私钥同样不能互换,故排除。
- D选项(I1、I2互换公钥): 正确。两个CA互换公钥是建立信任关系,形成证书链的必要条件。
- 答案: D
3)例题:证书链顺序
- 审题过程: 题目要求确定A使用证书链获取B公钥的正确顺序。
- 解题思路: 根据证书链的定义,需要确保从A到B的公钥获取路径是连贯的,即每个证书都能被前一个证书所签署。
- 选项分析:
- A选项(X2《X1》X1 《B》): 顺序错误,X1不能签署X2。
- B选项(X2《X1》X2 《A》): 完全不符合证书链的定义。
- C选项( X1《X2》X2 《B》): 正确。表示X1签署了X2的证书,X2签署了B的证书,形成连贯的证书链。
- D选项(X21《X2》X2《A》): 顺序错误,且不符合证书链的定义。
- 答案: C
4)例题:认证证书交换情况
- 审题过程: 题目问的是要使A能够对B进行认证,还需要什么条件。
- 解题思路: 考虑到A、B分别从两个不同的CA获取证书,要实现A对B的认证,必须确保两个CA之间建立了信任关系。
- 选项分析:
- A选项(A和B交换各自公钥): 仅仅交换公钥并不能建立两个CA之间的信任关系。
- B选项(A和B交换各自私钥): 私钥是保密的,不能交换。
- C选项(CA1和CA2交换各自公钥): 正确。两个CA互换公钥是建立信任关系,使得A能够认证B的必要条件。
- D选项(CA1和CA2交换各自私钥): 私钥同样不能交换。
- 答案: C
5)例题:证书作用
- 审题过程: 题目要求判断哪个说法是错误的。
- 解题思路: 逐个分析选项,根据证书链和CA的运作原理来判断每个说法的正确性。
- 选项分析:
- A选项(甲、乙可以直接使用自己的证书相互认证): 正确。因为甲、乙都是从同一个CA获取的证书,所以他们可以直接相互认证。
- B选项(甲与丙及乙与丙可以直接使用自己的证书相互认证): 错误。因为甲、乙和丙是从不同的CA获取的证书,没有建立证书链,所以不能直接相互认证。
- C选项(CA1和CA2可以通过交换各自公钥相互认证): 正确。这是建立证书链,实现不同CA下用户相互认证的基础。
- D选项(证书I甲、I乙和I丙中存放的是各自的公钥): 正确。证书中通常存放的是用户的公钥和CA的签名。
- 答案: B
6.知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
数字证书的作用 | 绑定用户实体和公钥,确保公钥的真实性和权威性(类比身份证) | 高频考点:解决公钥信任问题,防止中间人攻击 | ⭐⭐ |
PKI体系结构 | 包含RA(注册机构)、CA(证书颁发机构)、证书发布系统、CRL(证书吊销列表) | 核心考点:RA负责资格审查,CA负责颁发证书 | ⭐⭐⭐ |
证书验证流程 | 1. 用CA公钥验证证书签名 2. 用用户公钥验证消息签名 | 易错点:区分CA签名(CA私钥)与用户签名(用户私钥) | ⭐⭐⭐⭐ |
证书链原理 | 跨CA信任需交换公钥,形成链式验证(如:CA1→CA2→用户B证书) | 典型考题:证书链顺序判断(如叉1→叉2→B) | ⭐⭐⭐ |
数字签名与加密 | 签名:私钥签、公钥验;加密:公钥加密、私钥解密 | 混淆点:签名确保不可否认性,加密确保机密性 | ⭐⭐⭐ |
X.509证书标准 | 包含序列号、有效期、公钥、CA签名(推荐RSA算法) | 对比:国密SM2证书使用ECC算法 | ⭐⭐ |
CA签名机制 | CA用私钥签名证书,用户用CA公钥验证证书真伪 | 关键逻辑:CA公钥需预先可信(如操作系统内置) | ⭐⭐⭐⭐ |
证书吊销列表(CRL) | 存储过期/无效证书,由CA维护 | 低频考点:CRL更新延迟可能导致安全风险 | ⭐⭐ |
三、数字签名 vs 数字证书
1.核心区别:
特性 | 数字证书 | 数字签名 |
---|---|---|
本质 | 公钥的“身份证” | 数据的“防伪标记” |
作用 | 证明公钥属于某个实体(如个人/网站) | 验证数据的真实性、完整性和不可否认性 |
颁发者 | 权威机构(CA) | 数据发送者(直接用私钥生成) |
内容 | 包含公钥、持有你是你者信息、CA签名等 | 发送者对数据的加密摘要(哈希值) |
验证方式 | 用CA的公钥验证证书有效性 | 用发送者的公钥验证签名有效性 |
2.通俗比喻:
-
数字证书 ≈ 身份证
- 由权威机构(公安局/CA)颁发,证明“”,且绑定了你的公钥(类似身份证号)。
- 例如:访问网站时,服务器出示证书证明自己是真实的“支付宝”,而非钓鱼网站。
-
数字签名 ≈ 手写签名+防伪钢印
- 用私钥对数据“盖章”,确保数据未被篡改且发送者无法抵赖。
- 例如:合同电子版签名后,对方可验证签名确认合同未被修改且确实是你签的。
3.协作关系:
- 证书提供信任基础:用CA的公钥验证证书,确认对方的公钥合法(相当于先检查身份证真假)。
- 签名保障数据安全:用已验证的公钥验证签名,确保数据真实可靠(相当于核对签名与身份证上的名字是否一致)。
相关文章:
【25软考网工】第六章(3)数字签名和数字证书
博客主页:christine-rr-CSDN博客 专栏主页:软考中级网络工程师笔记 大家好,我是christine-rr !目前《软考中级网络工程师》专栏已经更新二十多篇文章了,每篇笔记都包含详细的知识点,希望能帮助到你!…...
Android Native 函数 Hook 技术介绍
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 前言 Android Native 函数 Hook 技术是一种在应用运行时拦截或替换系统或自身函数行为的手段,常见实现包括 PLT Hook、Inline Hook。 PLT Hook 和…...
代码随想录算法训练营第60期第三十二天打卡
大家好,今天是我们贪心算法章节的第三阶段,前面我们讲过的几道题不知道大家理解的情况如何,还是那句话,贪心算法没有固定的套路与模板,一道题一个思路,我们要多思考这样慢慢地我就就可以水到渠成。今天我们…...
Problem C: 异常1
1.题目描述 检测年龄,其中若为负数或大于等于200岁皆为异常,请将下列代码补充完整。 // 你的代码将被嵌入这里 class Main{ public static void main(String[] args){ Person p1new Person("John",80); Person p2new Pers…...
Ollama部署使用以及模型微调和本地部署
ollama是一款开源的本地大语言模型管理工具,专注于简化大语言模型(LLM)的本地部署和使用。以下是关于 Ollama 应用的详细介绍: Ollama 的主要功能 本地化部署: Ollama 支持在本地运行模型,无需依赖外部云…...
汇编学习——iOS开发对arm64汇编的初步了解
汇编学习——iOS开发对arm64汇编的初步了解 文章目录 汇编学习——iOS开发对arm64汇编的初步了解前言栈 指令 寄存器寄存器指令运算指令寻址指令前变基 与 后变基 栈堆(Heap)内存机制三、栈(Stack)内存机制 3. 多级调用示例 例子A…...
前端代理问题
在前后端联调的时候,有一次因为前端项目代理配置有问题,导致请求接口对不上, transpileDependencies: true,devServer: {hot: true,port: 8081,proxy: {/api: {target: http://localhost:8080,changeOrigin: true,ws: true,pathRewrite: {^/a…...
E+H流量计通过Profibus DP主站转Modbus TCP网关与上位机轻松通讯
EH流量计通过Profibus DP主站转Modbus TCP网关与上位机轻松通讯 在现代工业自动化的广阔舞台上,Profibus DP与Modbus TCP这两种通信协议各领风骚,它们在不同的应用场景中发挥着举足轻重的作用。但工业生产的复杂性往往要求不同设备、系统之间能够顺畅沟…...
TCP/IP 模型每层的封装格式
TCP/IP 模型是一个四层网络架构,每一层在数据传输时都会对数据进行封装,添加相应的头部(和尾部)信息。以下是各层的封装格式及关键字段说明: 1. 应用层(Application Layer) 封装格式:…...
openjdk底层汇编指令调用(一)——汇编指令及指令编码基础
汇编指令 计算机在执行过程时只识别代表0或者1的电信号。因此为了让计算机能够执行则须向计算机输入一系列01构成的指令。 例如在x64平台下,0x53,二进制为01010011,表示将rbx寄存器中的值压栈。 但是,对于程序员而言,…...
5G-A来了!5G信号多个A带来哪些改变?
5G-A来了!5G信号多个A带来哪些改变? 随着科技不断进步,通信网络的迭代升级也在加速。自4G、5G的推出以来,我们见证了通信技术的飞跃式发展。最近,越来越多的用户发现自己手机屏幕右上角的5G标识已经变成了“5G-A”。那…...
探索虚拟化:云计算时代的资源优化之道
前言 如果您想知道云提供商如何在全球范围内运行无数应用程序,而每个应用程序都没有机架服务器,那么答案就在于虚拟化。 它是为云提供支持的核心技术之一,在幕后悄悄工作,使现代计算高效、可扩展且具有成本效益。 在本文中&#x…...
用户登录构件示例
目录 一、登录构件概述 二、构件内部结构 1. 构件组成元素(表格形式) 2. 组件连接件设计...
【软件测试】基于项目驱动的功能测试报告
目录 一、项目的介绍 1.1 项目背景 二、测试目标 2.1 用户服务模块 2.1.1 用户注册模块 2.1.1.1 测试点 2.1.1.2 边界值分析法(等价类+边界值) 2.1.1.2.1 有效等价类 2.1.1.2.2 无效等价类 2.1.1.2.3 边界值 2.1.1.2.4 测试用例设计 2.2 文章标签模块 2.3 文章模…...
【QT】UDP通讯本地调试
qt已经写好了udp通讯代码,现在要进行测试。 1、终端输入ipconfig查看本机网卡的ipv4地址 2、 用udpBind函数,绑定到此ip和自定义的端口号。 3、 打开网络调试助手,自动检测到本机的ip地址,输入任意一个和程序里不一样的端口号。 …...
web animation API 锋利的css动画控制器 (更新中)
什么是web animation api 以及为什么要使用web animation api? web animation API 是web页面中控制DOM元素动画效果的javascript原生API。 它能够逐个关键帧控制动画效果,具有Timeline 机制能通过javascript来实现动画的暂停,播放&#x…...
Nginx的增强与可视化!OpenResty Manager - 现代化UI+高性能反向代理+安全防护
以下是对OpenResty Manager的简要介绍: OpenResty Manager (Nginx 增强版),是一款容易使用、功能强大且美观的反向代理工具 ,可以作为OpenResty Edge 的开源替代品基于 OpenResty 开发,支持并继承 OpenRes…...
Spring Boot 中的重试机制
Retryable 注解简介 Retryable 注解是 Spring Retry 模块提供的,用于自动重试可能会失败的方法。在微服务架构和分布式系统中,服务之间的调用可能会因为网络问题、服务繁忙等原因失败。使用 Retryable 可以提高应用的稳定性和容错能力 1。 使用步骤 &…...
[Java实战]Spring Boot 整合 Freemarker (十一)
[Java实战]Spring Boot 整合 Freemarker (十一) 引言 Apache FreeMarker 作为一款高性能的模板引擎,凭借其简洁语法、卓越性能和灵活扩展性,在 Java Web 开发中占据重要地位。结合 Spring Boot 的自动化配置能力,开发者能快速构建动态页面、…...
现有预测式外呼系统如何接入AI系统,使用AI辅助,判断出意向客户再转人工
很多用户还在使用老旧的预测式外呼系统,只能外呼接通后播放一个提示音,播放完提示音后在转给人工坐席, 如果重新部署一套AI外呼系统,涉及到业务系统的迁移,非常不方便。 现在我就做一个如何让现有外呼系统,…...
实战项目3(04)
目录 任务场景一 【r1配置】 【sw1配置】 任务场景二 【r1配置】 【sw1配置】 【sw2配置】 任务场景一 某公司网络为了减少广播包对网络的影响,网络管理员对网络进行了VLAN划分,完成VLAN划分后,为了不影响VL…...
[Java实战]Spring Boot 静态资源配置(十三)
[Java实战]Spring Boot 静态资源配置(十三) 引言 静态资源(如 HTML、CSS、JavaScript、图片等)是 Web 应用的基石。Spring Boot 通过自动化配置简化了静态资源管理,但面对复杂场景(如多模块项目、CDN 集成…...
ESP-ADF wifi_service子模块wifi_ssid_manager凭证管理函数详解
目录 ESP-ADF wifi_service子模块wifi_ssid_manager凭证管理函数详解WiFi凭证管理函数分析wifi_ssid_manager_savewifi_ssid_manager_erase_all 内部实现机制存储策略分析内部数据流向关键辅助函数分析重要的内部辅助函数详解get_stored_id_by_ssidnvs_get_write_idnvs_set_cou…...
数据分析预备篇---NumPy数组
NumPy是数据分析时常用的库,全称为Numerical Python,是很多数据或科学相关Python包的基础,包括pandas,scipy等等,常常被用于科学及工程领域。NumPy最核心的数据结构是ND array,意思是N维数组。 #以下是一个普通列表的操作示例:arr = [5,17,3,26,31]#打印第一个元素 prin…...
解决VirtualBox中虚拟机(ubuntu)与主机(windows)之间互相复制粘贴(文本)
一.开始的设置 1.在VirtualBox中打开设置,常规中修改主机与虚拟机交互设置 2.虚拟机关闭状态下,存储中选中控制器SATA,勾选‘使用主机输入输出’ 3.选中操作系统对应的虚拟文件,.vdi文件,勾选右边的固态驱动器。 4.启…...
单细胞RNA测序数据分析与可视化:从基础原理到高级应用
引言 单细胞RNA测序(scRNA-seq)技术的出现彻底改变了我们研究复杂生物系统的方式,使科学家能够在前所未有的精细水平上解析细胞异质性。传统的bulk RNA测序只能捕获细胞群体的平均表达特征,而单细胞转录组测序允许我们检测每个细…...
嵌入式硬件篇---UART
文章目录 前言1. UART协议基础1.1 物理层特性两根信号线无时钟信号电平标准TTL UARTRS-232 1.2 数据帧格式1.3 波特率计算波特率 2. STM32F103RCT6的UART配置2.1 硬件连接2.2 CubeMX配置启用USART1引脚分配中断启用(可选) 3. HAL库代码实现3.1 UART初始化…...
C# 通过ConfigurationManager读写配置文件App.Config
目录 简述代码描述一、构建App.config二、调用代码1、代码步骤说明2、输出结果说明 简述 App.config 是 C#中最常用的配置文件类型。 通常位于项目的根目录中,以 XML 格式存储配置信息。App.config 文件可以包含多个配置节,如 appSettings、connectionS…...
Python3安装HTMLTestRunner
1.下载HTMLTestRunner地址:http://tungwaiyip.info/software/HTMLTestRunner.html 2.下载的HTMLTestRunner.py是针对python2写的,所以需要改成python3适合的内容: 问题1:No module named StringIO, 原因:py…...
图形化编程革命:iVX携手AI 原生开发范式
一、技术核心:图形化编程的底层架构解析 1. 图形化开发的效率优势:代码量减少 72% 的秘密 传统文本编程存在显著的信息密度瓶颈。以 "按钮点击→条件判断→调用接口→弹窗反馈" 流程为例,Python 实现需定义函数、处理缩进并编写 …...
GC垃圾回收
Gc是语言提供的自动的内存管理机制,自动释放不需要的内存对象,让出存储器资源。 Go语言变革: V1.5的三色并发标记法 V1.5的三色并发标记为什么需要STW V1.5的三色标记为什么需要屏障机制(“强-弱”,三色不变式、插入屏障、删除屏障…...
“多端多接口多向传导”空战数据链体系——从异构融合架构到抗毁弹性网络的系统性设计
“多端多接口多向传导”空战数据链体系——从异构融合架构到抗毁弹性网络的系统性设计 文章目录 “多端多接口多向传导”空战数据链体系——从异构融合架构到抗毁弹性网络的系统性设计第一章 引言:空战数据链体系的范式革新1.1 空战数据链的演进逻辑1.2 新架构的核心理论价值1…...
Unity3D仿星露谷物语开发42之粒子系统
1、目标 使用例子系统,实现割草后草掉落的特效。 通过PoolManager获取特效预制体,通过VFXManager来触发特效。 2、配置例子特效 在Hierarchy -> PersistentScene下创建新物体命名为Reaping。 给该物体添加Particle System组件。 配置例子系统参数…...
python打卡训练营打卡记录day22
复习日 仔细回顾一下之前21天的内容,没跟上进度的同学补一下进度。 作业: 自行学习参考如何使用kaggle平台,写下使用注意点,并对下述比赛提交代码 kaggle泰坦尼克号人员生还预测 导入数据 # 导入所需库 import pandas as pd impor…...
网络编程(一)网络编程入门
本节课学习TCP客户端和服务器端编程架构,其分为分为C/S(客户端/服务器模式)和B/S(浏览器/服务器架构模式)两种模式。接下来我们分别了解这两种模式 C/S模式 C/S模式:服务器首先先启动,并根据客…...
华为IP(6)
VLAN聚合 VLAN聚合产生的技术背景 在一般是三层交换机中,通常采用一个VLAN接口的方式实现广播域之间的互通,这在某些情况下导致了IP地址的浪费 因为一个VLAN对应的子网中,子网号、子网广播地址、子网网关地址不能用作VLAN内的主机IP地址&a…...
初探机器学习与深度学习
本文以水果摊销量预测为例,揭示机器学习通过数据训练模型的核心逻辑,对比传统编程规则驱动模式。解析分类(疾病诊断)与回归(房价预测)两大任务的技术本质,类比前端开发中的类型定义与图表拟合。…...
3. 仓颉 CEF 库封装
文章目录 1. capi 使用说明2. Cangjie CEF2. 1实现目标 3. 实现示例 1. capi 使用说明 根据上一节 https://blog.csdn.net/qq_51355375/article/details/147880718?spm1011.2415.3001.5331 所述, cefcapi 是libcef 共享库导出一个 C API, 而以源代码形式分发的 li…...
Linux-TCP套接字编程简易实践:实现EchoServer与远程命令执行及自定义协议(反)序列化
一.TCP Socket常用API 1.1socket() NAMEsocket - create an endpoint for communicationSYNOPSIS#include <sys/types.h> /* See NOTES */#include <sys/socket.h>int socket(int domain, int type, int protocol); socket()打开一个网络通讯端口,如果…...
缓存(3):本地缓存作用 及 数据一致性 实现策略
概述 CAP 什么是CAP CAP理论,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。 三者关系如…...
【leetcode】《BFS扫荡术:如何用广度优搜索征服岛屿问题》
前言 🌟🌟本期讲解关于力扣的几篇题解的详细介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话不…...
vue中理解MVVM
理解 在 Vue 中,MVVM(Model-View-ViewModel) 是其核心设计思想之一,它帮助实现了数据驱动的视图更新和良好的代码结构分离。我们来具体解析 Vue 是如何实现 MVVM 模式的。 🌐 MVVM 是什么? 角色含义Vue…...
[工具]B站缓存工具箱 (By 郭逍遥)
📌 项目简介 B站缓存工具箱是一个多功能的B站缓存工具,包含视频下载、缓存重载、文件合并及系统设置四大核心功能。基于yutto开发,采用图形化界面操作,极大简化B站资源获取与管理流程。 工具可以直接将原本缓存的视频读取&#…...
Docker Compose 完全指南:从入门到生产实践
Docker Compose 完全指南:从入门到生产实践 1. Docker Compose 简介与核心价值 Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 YAML 文件来配置应用的服务,只需简单命令就能创建和启动所有服务。 核心优势:…...
《Redis应用实例》学习笔记,第二章:缓存二进制数据
前言 最近在学习《Redis应用实例》,这本书并没有讲任何底层,而是聚焦实战用法,梳理了 32 种 Redis 的常见用法。我的笔记在 Github 上,用 Jupyter 记录,会有更好的阅读体验,作者的源码在这里:h…...
ARM GIC(七)亲和路由:GICD_IROUTER寄存器具体如何与MPIDR配合使用?
ARM GIC(一) GIC V3架构基础学习笔记 完善亲和路由章节。 一、MPIDR MPIDR(Multiprocessor Affinity Register)寄存器在ARM架构中用于标识处理器的亲和性信息,这对于中断处理非常重要,特别是在多处理器系…...
stm32之SPI
目录 1.SPI通信协议1.1 简介1.2 硬件电路1.3 移位示意图1.4 SPI时序基本单元1.5 SPI时序 2.W25Q642.1 简介2.2 硬件电路2.3 框图2.3.1 结构介绍2.3.2 混淆 2.4 Flash操作注意事项2.4.1 写操作2.4.2 读取操作 2.5 芯片手册补充2.5.1 状态寄存器2.5.2 指令集 3.软件操作W25Q644.S…...
数据库事务以及JDBC实现事务
一、数据库事务 数据库事务(Database Transaction)是数据库管理系统中的一个核心概念,它代表一组操作的集合,这些操作要么全部执行成功,要么全部不执行,即操作数据的最小执行单元,保证数据库的…...
C语言_函数调用栈的汇编分析
在 C 语言的底层实现中,函数调用栈是程序运行时内存管理的核心机制。它不仅负责函数间的控制转移,还管理局部变量、参数传递和返回值。本文将结合 C 语言代码和 x86-64 汇编指令,深入解析函数调用栈的工作原理。 一、函数调用栈的基本概念 …...
单片机调用printf概率性跑飞解决方法
最近移植软件到不同平台的单片机上时,遇到了软件概率性跑飞的问题,分析后原因均指向和printf相关的库函数(包括sprintf, vsnsprinft),在任务里调用这些函数就有概率在ucos切换任务时跑飞(中断)。…...