HDCP(一)
HDCP的核心目标解析
1. 数字内容版权保护
HDCP(高带宽数字内容保护)的核心目标是防止未经授权的设备对高清音视频内容进行非法复制或截取。它通过加密技术保护数字信号在传输链路(如HDMI、DisplayPort、DVI等接口)中的安全性,确保只有经过授权的设备才能解密和播放受保护内容。例如,在蓝光播放、流媒体传输等场景中,若接收设备未通过HDCP认证,则可能仅显示低分辨率画面或黑屏,以此遏制盗版行为。
2. 保障传输链路的安全性
HDCP通过多层技术确保内容从发送端(如显卡、播放器)到接收端(如显示器、电视)的全程加密:
• 认证协议:发送端与接收端需交换密钥选择矢量(KSV)和私钥,通过算法验证合法性。若运算结果不匹配,认证失败,内容无法传输。
• 加密机制:采用像素级加密(如24位异或运算)和流加密(AES-128 CTR模式),实时生成动态密钥,防止传输过程中信号被窃听或篡改。
• 吊销列表:若设备密钥泄露,HDCP可通过系统可更新性(SRM)将其列入黑名单,禁止其参与后续认证,从而维护整体系统的安全性。
3. 规范设备生态与兼容性
HDCP要求所有参与内容传输的设备(包括中继器如KVM切换器)必须通过授权认证,并内置唯一的密钥组和KSV。制造商需向数字内容保护公司(DCP LLC)申请许可,确保设备遵循“禁止全分辨率模拟输出”等限制性规则。例如,未授权的显示器可能无法播放高清内容,或被迫降级为480p分辨率。
4. 动态适应安全威胁
HDCP设计时考虑了长期抗攻击能力:
• 密钥更新:每帧生成新密钥,破解单一帧不影响后续内容。
• 主密钥泄露应对:即使主密钥被逆向工程(如2010年事件),仍可通过吊销列表和协议升级(如HDCP 2.3)限制破解影响,将其威胁类比为“对电视屏幕拍摄的低画质翻录”。
5. 应用场景扩展
HDCP不仅用于家庭影音设备(如电视、游戏机),还扩展到商业领域:
• 企业办公:支持HDCP的KVM设备可安全传输受版权保护的商业演示内容。
• 广播电台:确保卫星或有线电视等受保护信号在控制室内的合法传输。
• 流媒体服务:Netflix等平台依赖HDCP防止用户非法录制高清节目。
总结
HDCP通过加密、认证、吊销三大机制构建了端到端的数字内容防护体系,平衡了版权方利益与用户体验。其技术细节(如KSV交换、动态密钥)和合规要求(如设备认证)共同支撑了高清内容生态的可持续发展。
HDCP核心范围、目标场景及关键术语
1. 协议范围
(1) 保护对象与传输链路
• 内容类型:未压缩的高清音视频内容(如 4K/8K 视频、多声道音频)。
• 适用接口:HDMI、DVI、DisplayPort 等高速数字接口。
• 系统角色:
• HDCP Transmitter(发送端):如蓝光播放器、游戏主机、显卡等。
• HDCP Receiver(接收端):如显示器、电视、投影仪等。
• HDCP Repeater(中继器):如 AV 功放、KVM 切换器等。
(2) 版本兼容性
• HDCP 1.x:早期版本,支持 7 层中继拓扑,但安全性较弱(如使用专有流加密)。
• HDCP 2.x:重构协议,采用 AES-128 和 RSA 加密,支持 4K 及以上分辨率,但中继层级限制为 4 层。
• 向下兼容性:HDCP 2.3 设备需通过转换器或原生支持 HDCP 1.x 才能与旧设备交互。
2. 术语定义
(1) 核心加密组件
• KSV(密钥选择矢量):40 位唯一标识符,用于设备合法性认证。
• 设备私钥集:由 DCP LLC 授权的 56 位密钥组,每个设备唯一分配。
• SRM(系统可更新性消息):包含吊销设备的 KSV 列表,动态维护安全生态。
(2) 协议流程术语
• AKE(认证与密钥交换):发送端与接收端通过 RSA 或共享密钥验证身份并生成主密钥 k_m
。
• Locality Check(位置验证):通过时间敏感的计算(≤20ms)确保物理链路无中间人攻击。
• SKE(会话密钥交换):基于主密钥 k_m
派生动态会话密钥 k_s
,用于实时流加密。
(3) 加密技术定义
• AES-CTR 模式:128 位 AES 计数器模式,结合随机初始化向量(riv
)和帧计数器实现流加密。
• HMAC-SHA256:用于密钥一致性验证和认证消息完整性。
• RSA-OAEP:非对称加密算法,用于主密钥的安全传输(如 HDCP 2.x)。
3. 协议目标与限制
(1) 核心目标
• 防复制:禁止未授权设备录制或转发受保护内容。
• 动态更新:通过 SRM 吊销泄露设备,维持长期安全性。
• 低延迟传输:加密流程需适应实时视频流的高带宽需求(如 4K@120Hz)。
(2) 限制与挑战
• 拓扑限制:HDCP 2.3 最多支持 4 层中继和 32 个设备。
• 兼容性冲突:旧设备(仅支持 HDCP 1.x)无法直接播放 HDCP 2.3 加密内容,需额外转换设备。
• 硬件依赖:需集成安全存储模块(如 TPM)保护密钥,增加硬件成本。
4. 学习建议
- 对比版本差异:重点理解 HDCP 1.x 与 2.x 在加密算法(流加密 vs AES)、拓扑层级(7层 vs 4层)和兼容性策略的差异。
- 术语关联实践:结合驱动开发场景,掌握
KSV
校验、AKE
状态机设计、SRM
更新机制等术语的实际应用。 - 安全规范扩展:参考 NIST SP 800-90(随机数生成)和 FIPS 197(AES 实现)补充协议未明示的密码学细节。
HDCP协议分层详解
HDCP协议的分层设计是其实现安全传输的核心架构,主要分为认证层、加密层和系统更新层,同时包含对中继器拓扑的扩展管理。以下是分层解析:
1. 认证层(Authentication Layer)
认证层负责设备身份验证与密钥交换,确保通信双方合法可信。
(1) 设备认证(AKE阶段)
• 核心流程:
- 发送端(Transmitter)发送
AKE_Init
消息,包含随机数r_tx
和版本信息(TxCaps) - 接收端(Receiver)返回
AKE_Send_Cert
,内含公钥证书cert_rx
、随机数r_rx
及Repeater标识 - 发送端验证证书签名(需DCP LLC公钥),确认接收端未被吊销(SRM校验)
- 生成主密钥
k_m
,通过RSA公钥加密传输(未存储k_m
时)或直接调用已存储密钥(配对模式) - 双方通过HMAC-SHA256计算
H
与H'
验证密钥一致性
(2) 位置验证(Locality Check)
• 新增于HDCP 2.x:防止远程中间人攻击,要求物理链路延迟≤20ms
• 算法流程:
需在20ms内完成计算并比对L
与L'
(3) 中继器拓扑认证
• 层级限制:最多4级中继器,32个设备(HDCP 2.3)
• KSV列表传播:中继器需向上游发送下游设备KSV列表及验证值V
(SHA-1哈希校验)
2. 加密层(Encryption Layer)
加密层负责实时数据流保护,采用动态密钥机制防止单次破解影响全局。
(1) 会话密钥生成(SKE阶段)
• 密钥派生:
其中dkey_2
用于加密会话密钥k_s
• 加密启动:发送SKE_Send_Eks
后延迟200ms启用加密
(2) 流加密实现
• AES-CTR模式:
• 初始化向量riv
为随机数,帧计数器递增
• 加密块生成:
• 同步机制:通过垂直消隐间隔更新密钥状态(HDCP 1.x)或ADVANCE_CIPHER模式(HDCP 2.x)
3. 系统更新层(Renewability Layer)
该层确保协议长期抗攻击能力,动态维护安全设备列表。
(1) SRM机制(System Renewability Message)
• 吊销列表:包含被破解设备的KSV或Receiver ID,需定期更新
• 校验流程:发送端在认证阶段验证接收端ID是否在SRM黑名单中
(2) 密钥泄露应对
• 主密钥k_m
泄露后,通过SRM更新使旧密钥失效,需重新配对设备
• 会话密钥k_s
动态更新周期≤400ms,单次破解无法获取完整内容
4. 拓扑管理层(扩展层)
针对多设备级联场景设计,平衡安全性与性能。
• 层级限制:
• HDCP 1.x:7层,128设备
• HDCP 2.x:4层,32设备
• 中继器处理:
• 上游传播:RepeaterAuth_Send_ReceiverID_List
上报下游拓扑
• 下游管理:RepeaterAuth_Stream_Manage
控制内容分发权限
协议分层对比(HDCP 1.x vs 2.x)
分层 | HDCP 1.x特性 | HDCP 2.x增强点 |
---|---|---|
认证层 | 基于40组DPK+KSV的共享密钥计算 | 引入RSA非对称加密,支持主密钥缓存 |
加密层 | 专有流密码(24位异或) | AES-128 CTR标准化加密 |
系统更新层 | 基础KSV吊销机制 | 强化SRM校验与动态更新 |
拓扑管理 | 支持7层级联 | 优化为4层级联降低认证延迟 |
掌握协议分层需重点关注认证流程的密码学实现(如RSA与AES-CTR的混合应用)和动态更新机制(SRM与密钥派生),这对驱动开发中的状态机设计和硬件加速模块集成至关重要。
HDCP认证协议核心流程详解
结合文档中关于HDCP 1.x与2.x的认证协议描述,以下是认证流程的深度解析:
1. 认证协议核心目标
认证协议(Authentication Protocol)的核心任务是验证设备的合法性并建立加密会话密钥,确保只有经过授权的设备才能解密受保护内容。关键目标包括:
• 身份验证:通过密钥交换(KSV/RSA)确认设备合法性
• 密钥安全传输:通过非对称加密(HDCP 2.x)或共享密钥(HDCP 1.x)建立主密钥k_m
• 动态会话保护:生成动态会话密钥k_s
,实现实时流加密
• 抗中间人攻击:通过Locality Check(HDCP 2.x)和同步验证(HDCP 1.x)确保物理链路安全
2. HDCP 1.x认证流程(三阶段)
第一阶段:密钥交换与共享密钥计算
- KSV交换:
• 发送端(Transmitter)发送Aksv
(自身KSV)和随机数An
至接收端
• 接收端返回Bksv
(自身KSV)和REPEATER
标识(是否为中继器) - 共享密钥生成:
• 双方根据对方KSV从40组私钥中选择部分密钥,通过56位模加法计算Km
(共享密钥)
• 同步生成会话密钥Ks
、验证值M0
和R0
第二阶段:中继器拓扑处理
• 层级限制:最多支持7层中继器、128个设备
• KSV列表验证:
• 中继器收集下游设备KSV列表,通过SHA-1计算哈希值V
并上报
• 发送端验证V
与接收端计算的V'
是否一致,防止数据篡改
第三阶段:同步验证
• 帧级同步:每128帧计算一次Ri
值(16位验证码)
• 实时校验:发送端与接收端比对Ri
值,不一致则中断连接
3. HDCP 2.x认证流程(四阶段)
AKE(认证与密钥交换)
- 初始化(AKE_Init):
• 发送端生成随机数r_tx
,发送AKE_Init
(含r_tx
和版本信息TxCaps
) - 证书验证(AKE_Send_Cert):
• 接收端返回证书cert_rx
(含Receiver ID、公钥、DCP LLC签名)、随机数r_rx
和版本信息RxCaps
• 发送端验证证书签名(使用DCP LLC公钥)和Receiver ID合法性 - 主密钥传输:
• 无存储k_m
时:发送端生成128位随机数作为k_m
,用接收端公钥加密为Ekpub(km)
发送
• 已存储k_m
时:直接调用缓存的k_m
(配对模式) - 密钥派生与验证:
• 双方通过HMAC-SHA256计算H
和H'
,不一致则认证失败
Locality Check(位置验证)
• 防中间人攻击:
• 发送端发送随机数r_n
,接收端在20ms内计算L'=HMAC-SHA256(r_n, k_d XOR r_rx)
并返回
• 超时或值不匹配则终止连接
SKE(会话密钥交换)
- 会话密钥生成:
• 发送端生成随机数k_s
(会话密钥)和riv
(初始化向量)
• 通过AES-CTR派生dkey_2 = AES-128(k_m, r_tx || (r_rx XOR 2))
• 加密k_s
为Edkey(ks) = k_s XOR (dkey_2 XOR r_rx)
并发送 - 加密启动:延迟200ms后启用加密,防止时序攻击
系统可更新性(Renewability)
• SRM校验:发送端检查接收端ID是否在吊销列表(SRM)中
• 动态更新:SRM通过数字签名(DSA)保障完整性,定期从内容源更新
4. 协议对比与开发要点
特性 | HDCP 1.x | HDCP 2.x |
---|---|---|
加密算法 | 专有流密码(24位异或) | AES-128 CTR + RSA-2048 |
密钥管理 | 静态共享密钥(40组私钥) | 动态主密钥k_m + 会话密钥k_s |
拓扑限制 | 7层中继器,128设备 | 4层中继器,32设备 |
抗攻击能力 | 易受暴力破解 | Locality Check + 密钥吊销 |
兼容性 | 仅支持HDMI 1.x | 支持HDMI 2.1/DisplayPort 2.0 |
开发注意事项:
• 状态机设计:需实现AKE、Locality Check、SKE三阶段状态跳转(参考HDCP 2.3文档状态图)
• 硬件加速:AES-CTR和RSA运算需依赖硬件加速模块(如FPGA的AES-NI核)
• 错误处理:超时重试(如AKE阶段100ms超时)、KSV吊销检测、同步失败复位
• 调试工具:使用逻辑分析仪捕获I²C总线上的AKE_Send_Cert
和SKE_Send_Eks
消息
5. 学习建议
- 实验验证:
• 在FPGA开发板实现AKE状态机,模拟证书验证和密钥派生流程
• 使用示波器观察I²C总线的时序(如AKE_Init
与AKE_Send_Cert
交互) - 密码学深化:
• 学习RSA-OAEP加密与HMAC-SHA256实现(RFC 8017、FIPS 198-1)
• 研究AES-CTR模式的IV生成规则(NIST SP 800-38A) - 合规性测试:
• 参考DCP LLC的合规测试套件(如HDCP 2.3 CTS),验证驱动实现
相关文章:
HDCP(一)
HDCP的核心目标解析 1. 数字内容版权保护 HDCP(高带宽数字内容保护)的核心目标是防止未经授权的设备对高清音视频内容进行非法复制或截取。它通过加密技术保护数字信号在传输链路(如HDMI、DisplayPort、DVI等接口)中的安全性&am…...
HTTP 1.0 时代,第一次优化
HTTP 是 “HyperText Transfer Protocol” 的缩写,即超文本传输协议。 相较于最初的设计,1.0增加了以下特性: 增加head,post等新方法。 引入新方法是为了扩充语义,其中 head 方法可以只拿元信息,不必传输…...
【吾爱出品】[Windows] 鼠标或键盘可自定义可同时多按键连点工具
[Windows] 鼠标或键盘连点工具 链接:https://pan.xunlei.com/s/VONSFKLNpyVDeYEmOCBY3WZJA1?pwduik5# [Windows] 鼠标或键盘可自定义可同时多按键连点工具 就是个连点工具,功能如图所示,本人系统win11其他系统未做测试,自己玩…...
计算机网络起源
互联网的起源和发展是一个充满创新、突破和变革的历程,从20世纪60年代到1989年,这段时期为互联网的诞生和普及奠定了坚实的基础。让我们详细回顾这一段激动人心的历史。 计算机的发展与ARPANET的建立(20世纪60年代) 互联网的诞生…...
Vue3 watch 与 watchEffect 深度解析
Vue3 watch 与 watchEffect 深度解析 一、响应式监听的基石作用 在Vue3的响应式系统中,watch和watchEffect是构建复杂状态逻辑的关键工具。它们实现了对响应式数据的精准监听,支撑着现代前端开发中的状态管理、副作用处理等核心功能。 1.1 演变 Optio…...
服务器信息收集
信息收集又叫打点,打仗也要侦探敌情,攻防更是如此。 但要获取哪些信息呢? 目录 一. 获取公网IP 如何知道一个网站用了CDN? 如何绕过CDN? 二. 旁站信息收集 三. C段主机查询 四. 子域名信息收集 五. 端口信息收…...
Java设计模式之装饰器模式:从入门到架构级实践
一、开篇:为什么需要装饰器模式? 在软件开发中,我们经常面临这样的困境:如何在不修改原有对象结构的情况下,动态地扩展对象的功能?当系统需要为对象添加多种可能的扩展功能时,如果直接使用继承…...
Vue3性能优化全攻略:从原理到极致性能实战
一、性能瓶颈深度诊断 1.1 关键性能指标分析 1.2 性能剖析工具矩阵 工具类型典型工具适用场景检测维度综合检测工具Lighthouse首屏加载性能分析加载评分/优化建议运行时监控工具Web Vitals页面交互性能监控FCP/LCP/TTI等框架专项工具Vue Devtools组件渲染性能分析渲染耗时/更…...
阿里云 AI 搜索开放平台:从算法到业务——AI 搜索驱动企业智能化升级
——已获知乎作者【GitHub Daily】授权转载 目前大模型的强大能力,使其成为一些企业和行业的主要创新驱动力,企业亟需重新审视和调整现有的创新机制,以适应AI技术和大数据的快速发展。目前很多企业已经开始尝试大模型在业务中进行赋能&#x…...
特权FPGA之AT24C02 IIC实现
0 简介 IIC的物理层 IIC一共有只有两个总线: 一条是双向的串行数据线SDA,一条是串行时钟线SCL. SDA(Serial data)是数据线,D代表Data也就是数据,Send Data …...
Docker 容器内运行程序的性能开销
在 Docker 容器内运行程序通常会有一定的性能开销,但具体损失多少取决于多个因素。以下是详细分析: 1. CPU 性能 理论开销:容器直接共享宿主机的内核,CPU 调度由宿主机管理,因此 CPU 运算性能几乎与原生环境一致&…...
SpringBoot依赖冲突引发的 log4j 日志打印问题及解决方法
依赖冲突引发的 log4j 日志打印问题及解决方法 在软件开发过程中,依赖管理是至关重要的一环。然而,时常会遇到依赖冲突的情况,其中就包括影响日志框架正常使用,比如因依赖冲突导致无法正常打印 log4j 日志的问题。 问题描述 当…...
MacOS中的鼠标、触控板的设置研究
一、背景和写这篇文章的原因 想搞清楚和配置好鼠标,比如解决好为什么我的滚动那么难用?怎么设置滚轮的方向跟windows相同?调整双击速度,调整鼠标滚轮左右拨动的"冷却时间"。 二、各种设置之详细解释 1. MacOS设置 -&…...
Clickhouse试用单机版部署
问题 最近需要试用clklog数据收集的社区版,clklog用数据库是Clickhouse。这就需要我先单机部署一个Clickhouse数据库,先试用试用。 步骤 这里假设我们已经拥有一台Ubuntu的服务器了,现在我们需要在这台机器上面安装Clickhouse数据库。Clic…...
【运维 | 硬件】服务器中常见的存储插槽类型、对应的传输协议及其特性总结
Why:最近更换设备,具体了解一下。 传输协议对比 协议 底层接口 最大带宽 队列深度 典型延迟 适用场景 AHCI SATA 6 Gbps (~600 MB/s) 单队列(32命令) 较高 传统 HDD/SATA SSD SAS SAS 24 Gbps (~2.4 GB/s) 单队列&…...
本地laravel项目【dcat-admin】部署到liunx服务器
文章目录 前言一、部署流程1、数据库搬迁2、宝塔创建网站,配置php3、修改nginx配置4、在public目录设置软连接5、修改env配置、刷新缓存 二、其他问题1.后台登陆失败问题2.完美解决接口跨域问题 总结 前言 laravel新手记录 差不多一个月,总算用laravel…...
DeepSeek:AI如何重构搜索引擎时代的原创内容生态
一、当生成式AI遇上搜索引擎:一场效率与价值的博弈 2023年,全球搜索引擎处理了超过2万亿次查询,其中超40%涉及复杂问题解答。而与此同时,Google的"Helpful Content Update"算法升级直接淘汰了26%的低质AI生成页面。这场…...
在docker里装rocketmq-console
首先要到github下载(这个一般是需要你有梯子) GitHub - apache/rocketmq-externals at release-rocketmq-console-1.0.0 如果没有梯子,用下面这个百度网盘链接下 http://链接: https://pan.baidu.com/s/1x8WQVmaOBjTjss-3g01UPQ 提取码: fu…...
蓝桥杯C++组算法知识点整理 · 考前突击(上)【小白适用】
【背景说明】本文的作者是一名算法竞赛小白,在第一次参加蓝桥杯之前希望整理一下自己会了哪些算法,于是有了本文的诞生。分享在这里也希望与众多学子共勉。如果时间允许的话,这一系列会分为上中下三部分和大家见面,祝大家竞赛顺利…...
Docker 是什么? Docker 基本观念介绍与容器和虚拟机的比较
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:历代文学,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计…...
Docker:安装与部署 Nacos 的技术指南
1、简述 Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一个动态服务发现、配置管理和服务治理的综合解决方案,适用于微服务架构。 Nacos 主要功能: 服务发现与注册:支持 Dubbo、Spring Cloud 等主流微服务框架的服务发现与注册。动态配置管理:支持…...
UE5 RPC调用示例详解
文章目录 前言一、示例场景二、代码实现三、关键点解析3.1 RPC类型选择3.2 可靠性设置3.3 权限控制3.4 输入处理 四、测试与验证总结 前言 在UE5中,RPC(远程过程调用)是实现多人游戏逻辑同步的核心机制。以下通过一个玩家跳跃的示例…...
MATLAB在工程领域的实际应用案例
文章目录 前言自动驾驶汽车路径规划系统汽车先进驾驶辅助系统(ADAS)开发控制电气系统设计与优化桥梁结构分析与安全性评估 前言 MATLAB 在工程领域应用广泛,能解决复杂问题、优化系统设计。下面从不同工程领域选取了具有代表性的案例&#x…...
【完美解决】VSCode连接HPC节点,已配置密钥却还是提示需要输入密码
目录 问题描述软件版本原因分析错误逻辑链 解决方案总结 问题描述 本人在使用 VSCode Remote-SSH 插件连接超算集群节点时,遇到以下问题:已正确配置 SSH 密钥,且 VSCode 能识别密钥文件(如图1),但在…...
智能物联网网关策略部署
实训背景 某智慧工厂需部署物联网网关,实现以下工业级安全管控需求: 设备准入控制:仅允许注册MAC地址的传感器接入(白名单:AA:BB:CC:DD:EE:FF)。协议合规性:禁止非Modbus TCP(端口…...
玩转代理 IP :实战爬虫案例
在现代互联网环境下,爬虫不仅是数据获取的利器,也成为应对网站反爬机制的技术博弈。而在这场博弈中,"代理 IP" 是核心武器之一。本文将以高匿名的代理ip为核心,结合 Python 实战、代理策略设计、高匿技巧与反封锁优化&a…...
Deepseek解锁科研绘图新方式
在科研领域,一张清晰、准确且美观的图片往往能比冗长的文字更有效地传达研究成果。从展示实验数据的图表,到阐述理论模型的示意图,科研绘图贯穿于研究的各个环节。然而,传统的科研绘图工具往往操作复杂,学习成本高&…...
【unity游戏开发入门到精通——动画篇】Animator反向动力学(IK)
考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、…...
【JavaScript】十八、页面加载事件和页面滚动事件
文章目录 1、页面加载事件1.1 load1.2 DOMContentLoaded 2、页面滚动事件2.1 语法2.2 获取滚动位置 3、案例:页面滚动显示隐藏侧边栏 1、页面加载事件 script标签在html中的位置一般在</body>标签上方,这是因为代码从上往下执行,在htm…...
Solana链开发全景指南:从环境搭建到生态实践
——2025年高性能区块链开发技术栈深度解析 一、Solana核心优势与技术特性 1. 突破性技术架构 历史证明(PoH):通过时间戳序列化交易,实现并行处理能力,支持5万TPS的吞吐量 并行执行引擎(Sealevel…...
这是一个文章标题
# Markdown 全语法示例手册本文档将全面演示 Markdown 的语法元素,包含 **标题**、**列表**、**代码块**、**表格**、**数学公式** 等 18 种核心功能。所有示例均附带实际应用场景说明。---## 一、基础文本格式### 1.1 标题层级 markdown # H1 (使用 #) ## H2 (使用…...
预言机与数据聚合器:DeFi的数据桥梁与风险博弈
一、核心机制与价值定位 预言机(Oracle)与数据聚合器是DeFi生态的“数据基建层”,解决链上-链下数据互通与链上数据可读性两大问题: 数据输入层(预言机):将现实世界数据(价格、天气…...
通过百度OCR在线API识别带水印扫描图片文字
目录 0 环境准备 1 百度OCR API申请 1.1 登录百度智能云 1.2 创建应用 1.3 获取API key和secret key 2 创建项目python环境 2.1 conda创建python环境 2.2 在pycharm中创建项目 2.3 激活python环境 2.4 安装项目依赖包 3 程序逻辑实现 3.1 导入依赖包 3.2 定义百度k…...
ocr python库
ocr python库 上手Git、Gitee和Github!watt toolkit...
Node 处理 request 的过程中,都会更新哪些 metadata 和 property
什么是 Metadata? 用于描述帧状态、控制参数、处理结果等 是随 request 流动的结构,通常是 PerFrameMetaData,每一帧一份 属于 HAL3 metadata 树的组成部分 什么是 Property? 是 CamX 内部定义的一种帧级别的轻量信息块 不一…...
基于labview的多功能数据采集系统
基于labview的多功能数据采集系统(可定制功能) 包含基于NI温度采集卡。电流采集卡。电压采集卡的数据采集功能 数据存储 报表存储 数据处理与分析 生产者消费者架构 有需要可联系...
李沐《动手学深度学习》 | 线性神经网络-线性回归
文章目录 线性回归1.确定模型2.衡量预估质量-损失函数3.深度学习的基础优化算法随机梯度下降小批量随机梯度下降 从线性回归到深度网络 线性回归从0开始实现构造一个人造数据集创建数据集可视化数据集 读取数据-随机抽取样本模型定义模型参数初始化定义模型定义损失函数定义优化…...
LabVIEW 中 “Flatten To Json String” VI 应用及优势
在 LabVIEW 开发涉及机器人数据等场景时,常需将数据以特定 JSON 格式输出。“Flatten To Json String” VI 在此过程中能发挥重要作用,相比 LabVIEW 系统自带的 JSON 处理方式,它具备独特优势。以下将介绍其获取、使用方法及相较系统自带方式…...
关于 Spring Boot 后端项目使用 Maven 打包命令、JAR/WAR 对比、内嵌服务器与第三方服务器对比,以及热部署配置的详细说明
以下是关于 Spring Boot 后端项目使用 Maven 打包命令、JAR/WAR 对比、内嵌服务器与第三方服务器对比,以及热部署配置的详细说明: 一、Maven 打包命令详解 1. 基础命令 1.1 清理并打包 mvn clean packageclean:删除 target 目录中的旧构建文…...
用labview写crc8校验
crc8校验有好几种,我这里写的是不带任何后缀的crc8。 首先,我们百度一下crc8的计算方式 一般搜索出来下面还有c语言写的crc8可以做为参考。 下面便是根据百度的计算方式写的crc8,已校验过,无问题。 写完后,可以输入下…...
阿里云CDN与DCDN主动推送静态资源至边缘服务器的ASP.NET WEB实例
一、CDN,需要调用PushObjectCache接口进行URL预热,以下是操作步骤: 1. 准备工作 首先,安装阿里云SDK NuGet包: Install-Package Aliyun.NET.SDK.CDN -Version 3.0.0 Install-Package Aliyun.NET.SDK.Core -Version 3.0.0 2. 创建ASP.NET Web页面代码 CDNPreheat.aspx…...
LangChain-提示模板 (Prompt Templates)
提示模板是LangChain的核心组件,用于构建发送给语言模型的输入。本文档详细介绍了提示模板的类型、功能和最佳实践。 概述 提示工程是使用大型语言模型的关键技术。通过精心设计的提示,可以显著提高模型的输出质量和相关性。LangChain的提示模板系统提…...
多线程中的互斥与同步
多线程中的互斥与同步 1. 互斥与同步的区别 互斥:确保某一资源在同一时刻只能被一个线程访问。其主要目的是保证资源的唯一性和排他性,但无法控制访问的顺序。同步:在互斥的基础上,进一步通过其他机制保证访问资源的有序性。 2…...
ValueError: Cannot handle batch sizes > 1 if no padding token is defined`
ValueError: Cannot handle batch sizes > 1 if no padding token is defined` batch sizes > 1 进行掩码填充:pad_token,eos_token 在处理自然语言处理任务时,尤其是在使用批量数据进行训练或推理时,经常需要对输入文本进行填充(padding),以确保每个输入序列具…...
Gemma 3模型:Google 开源新星,大语言模型未来探索
🐇明明跟你说过:个人主页 🏅个人专栏:《深度探秘:AI界的007》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、快速发展的AI世界:为何关注Gemma 3&#x…...
先占个日常,等会写。
引入一个重要的概念 “struct” (译为中文:结构体) 可用作设出比较复杂的一些变量类型 语法 :struct point name { int x; int y; int z;} point 和 name是任意命名的名字,含义是,声明一个变量类型为st…...
PyTorch Tensor维度变换实战:view/squeeze/expand/repeat全解析
本文从图像数据处理、模型输入适配等实际场景出发,系统讲解PyTorch中view、squeeze、expand和repeat四大维度变换方法。通过代码演示对比不同方法的适用性,助您掌握数据维度调整的核心技巧。 一、基础维度操作方法 1. view:内存连续的形状重…...
212、【图论】字符串接龙(Python)
题目描述 题目链接:110. 字符串接龙 代码实现 import collectionsn int(input()) beginStr, endStr input().split() strList [input() for _ in range(n)]deque collections.deque() # 使用队列遍历结点 deque.append([beginStr, 1]) # 存储当前字符串和遍…...
土堆教程笔记【PyTorch】
官网:torch — PyTorch 2.6 documentation Pycharm 解释器 一般搞深度学习都用虚拟环境的解释器,为了满足不同的项目所需要的不同的包的版本。 1. system interpreter表示本地的解释器 也就是你电脑系统里安装的解释器 2. Virtual Environment—Py…...
【今日三题】小乐乐改数字 (模拟) / 十字爆破 (预处理+模拟) / 比那名居的桃子 (滑窗 / 前缀和)
⭐️个人主页:小羊 ⭐️所属专栏:每日两三题 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 小乐乐改数字 (模拟)十字爆破 (预处理模拟)比那名居的桃子 (滑窗 / 前缀和) 小乐乐改数字 (模拟) 小乐乐改数字…...