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

【分布式技术】Bearer Token以及MAC Token深入理解

Bearer Token以及MAC Token深入理解

      • **Bearer Token 详解**
        • **1. 什么是 Bearer Token?**
        • **2. Bearer Token 的构建详情**
          • **(1)生成流程**
          • **(2)Token 示例(JWT)**
          • **(3)Token 类型**
        • **3. Bearer Token 的工作原理**
          • **(1)认证流程**
          • **(2)无状态性**
        • **4. Bearer Token 的使用场景**
          • **(1)Web API 认证**
          • **(2)单页应用(SPA)**
          • **(3)微服务架构**
          • **(4)移动应用**
          • **(5)单点登录(SSO)**
        • **5. Bearer Token 的优缺点**
          • **优点**
          • **缺点**
        • **6. Bearer Token 的安全实践**
        • **7. 与其他认证机制的对比**
        • **8. 代码示例(使用 JWT 生成 Bearer Token)**
        • **9. 总结**
      • **MAC Token 详解**
        • **1. 什么是 MAC Token?**
        • **2. MAC Token 的构建详情**
          • **(1)生成流程**
          • **(2)关键组件**
        • **3. MAC Token 的工作原理**
          • **(1)认证流程**
          • **(2)安全性设计**
        • **4. MAC Token 的使用场景**
          • **(1)OAuth 1.0a 协议**
          • **(2)服务间通信**
          • **(3)高安全需求场景**
          • **(4)API 限流与审计**
        • **5. MAC Token 的优缺点**
          • **优点**
          • **缺点**
        • **6. MAC Token 与 Bearer Token 的对比**
        • **7. 实际应用示例:OAuth 1.0a 的 MAC Token**
          • **(1)OAuth 1.0a 流程**
          • **(2)签名生成示例**
        • **8. 安全实践建议**
        • **9. 总结**

Bearer Token 详解

1. 什么是 Bearer Token?

Bearer Token 是一种基于 OAuth 2.0 协议的无状态访问令牌(Access Token),用于在客户端与服务器之间传递身份验证信息。它的核心特点是 “持有即有权”(Bearer),即任何持有该 Token 的实体(客户端)都可以访问受保护的资源,无需额外验证身份。

Bearer Token 通常是一个加密的字符串(如 JWT 或不透明 Token),通过 HTTPS 传输,并附加在 HTTP 请求头中(格式为 Authorization: Bearer <token>)。服务器通过验证 Token 的合法性(如签名、有效期)来决定是否允许访问资源。

2. Bearer Token 的构建详情
(1)生成流程
  1. 用户认证

    • 用户通过用户名/密码或其他方式登录,客户端向授权服务器发送认证请求。
    • 授权服务器验证用户身份(如检查数据库或 LDAP)。
  2. 生成 Token

    • JWT Token:由三部分组成(Header、Payload、Signature)。
      • Header:声明加密算法(如 HS256)和 Token 类型(JWT)。
      • Payload:包含用户信息(如用户 ID、角色)、权限范围(scope)、过期时间(exp)、签发时间(iat)等。
      • Signature:使用密钥对 Header 和 Payload 进行签名,防止篡改。
    • 不透明 Token:服务器生成一个随机字符串,并将其存储在服务端(如数据库或缓存),客户端仅需携带该字符串。
  3. 返回 Token

    • 授权服务器将生成的 Bearer Token 返回给客户端(如浏览器或移动端)。
(2)Token 示例(JWT)
{"header": {"alg": "HS256","typ": "JWT"},"payload": {"sub": "1234567890",       // 用户唯一标识"role": "admin",           // 用户角色"exp": 1718901064,         // 过期时间(Unix 时间戳)"iat": 1718900764          // 签发时间},"signature": "HMACSHA256(base64UrlEncode(header)+'.'+base64UrlEncode(payload), secretKey)"
}
(3)Token 类型
  • JWT(JSON Web Token):自包含的 Token,所有信息都编码在 Token 中。
  • 不透明 Token:服务器存储 Token 信息,客户端仅携带 Token 字符串。
3. Bearer Token 的工作原理
(1)认证流程
  1. 客户端请求 Token

    • 用户登录后,客户端向授权服务器发送认证请求(如 POST /token)。
    • 请求体包含用户凭证(如用户名、密码)或授权码。
  2. 服务器生成 Token

    • 验证用户身份后,服务器生成 Bearer Token 并返回给客户端。
  3. 客户端访问资源

    • 客户端在后续请求中,将 Bearer Token 添加到 HTTP 请求头:
      GET /api/resource HTTP/1.1
      Authorization: Bearer <token>
      
  4. 服务器验证 Token

    • 检查 Token 的签名是否合法(防止篡改)。
    • 验证 Token 的有效期(expiat)。
    • 根据 Token 中的声明(claims)判断用户权限。
  5. 返回资源

    • 如果验证通过,服务器返回请求的资源;否则返回 401 Unauthorized。
(2)无状态性
  • 无状态:服务器无需存储会话状态,所有必要信息都包含在 Token 中。
  • 扩展性:适用于分布式系统,多个服务器共享同一套验证逻辑。
4. Bearer Token 的使用场景
(1)Web API 认证
  • RESTful API:保护后端资源,如用户数据、支付接口。
  • 第三方应用授权:允许第三方应用通过 OAuth 2.0 获取用户授权,访问用户资源(如 GitHub API、Twitter API)。
(2)单页应用(SPA)
  • 前端框架(如 React、Vue):通过 Bearer Token 与后端服务通信,避免频繁发送用户名和密码。
(3)微服务架构
  • 服务间通信:微服务之间通过 Bearer Token 验证身份,确保只有授权服务可访问其他服务。
(4)移动应用
  • App 登录:用户登录后获取 Bearer Token,后续请求携带 Token 访问服务器资源。
(5)单点登录(SSO)
  • 跨域认证:用户登录一次后,通过 Bearer Token 实现跨多个系统的无缝访问。
5. Bearer Token 的优缺点
优点
  • 安全性:避免在网络上传输敏感凭证(如密码)。
  • 无状态:服务器无需维护会话状态,适合分布式系统。
  • 灵活性:可携带用户信息(如角色、权限),支持细粒度授权。
  • 标准化:遵循 OAuth 2.0 和 RFC 6750 标准,兼容性强。
缺点
  • Token 泄露风险:一旦 Token 被窃取,攻击者可冒充用户访问资源。
  • 无法实时失效:Token 通常有固定有效期,若需提前失效,需结合刷新机制或黑名单。
  • 存储开销:JWT 类 Token 可能较大,增加网络传输负担。
6. Bearer Token 的安全实践
  1. 使用 HTTPS:防止 Token 在传输过程中被窃听。
  2. 设置合理有效期:Token 通常为短期有效(几分钟到几小时),配合刷新 Token 延长会话。
  3. 存储安全
    • 客户端:避免将 Token 存储在易被访问的位置(如浏览器的 localStorage)。
    • 服务器:不透明 Token 的存储需加密保护。
  4. 防重放攻击:在 Token 中加入时间戳或一次性使用标识(nonce)。
  5. 撤销机制:通过黑名单(Token Revocation List)或数据库标记失效 Token。
7. 与其他认证机制的对比
认证机制Bearer TokenAPI KeyMAC Token
安全性高(需 HTTPS 保护)低(长期有效)高(每次请求需签名)
状态管理无状态无状态有状态(需验证签名和时间戳)
适用场景Web API、SPA、微服务简单 API、服务间调用高安全需求的机器通信
实现复杂度中等简单高(需管理共享密钥)
扩展性高(支持分布式系统)低(依赖共享密钥)

8. 代码示例(使用 JWT 生成 Bearer Token)
import jwt
import datetime# 生成 Bearer Token
def generate_token(user_id):payload = {'sub': user_id,'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1),'iat': datetime.datetime.utcnow()}token = jwt.encode(payload, 'your-secret-key', algorithm='HS256')return token# 验证 Bearer Token
def validate_token(token):try:payload = jwt.decode(token, 'your-secret-key', algorithms=['HS256'])return payload['sub']except jwt.ExpiredSignatureError:return 'Token expired'except jwt.InvalidTokenError:return 'Invalid token'
9. 总结

Bearer Token 是现代 Web 安全的核心机制之一,尤其在 API 认证和微服务架构中广泛应用。其无状态性和标准化特性使其成为 OAuth 2.0 的首选方案。然而,开发者需注意 Token 的存储、传输和失效管理,以应对潜在的安全风险。结合 JWT 或不透明 Token 的设计,可灵活适应不同场景的需求。

MAC Token 详解

1. 什么是 MAC Token?

MAC Token(Message Authentication Code Token)是一种基于 HMAC(Hash-based Message Authentication Code) 的认证机制,要求客户端和服务器共享一个密钥(Secret Key),并通过该密钥生成动态签名(Signature)来验证请求的合法性。其核心特点是 “动态签名 + 时间戳”,每次请求均需生成唯一的签名,服务器通过验证签名和时间戳来判断请求是否合法。

MAC Token 常用于 OAuth 1.0a 协议、服务间通信(如 API 调用)或高安全需求的场景(如金融系统、物联网设备通信)。与 Bearer Token 不同,MAC Token 需要客户端和服务器共享密钥,且每次请求均需签名验证。

2. MAC Token 的构建详情
(1)生成流程
  1. 密钥共享

    • 客户端和服务器预先协商一个共享密钥(Secret Key),通常通过安全通道(如 OAuth 1.0a 的 consumer_secret)分发。
    • 例如:OAuth 1.0a 中,开发者注册应用时会获得 consumer_keyconsumer_secret
  2. 请求签名

    • 客户端构造请求参数(如 URL、HTTP 方法、时间戳等),并将其与共享密钥结合,生成 HMAC 签名。
    • 签名算法通常为 HMAC-SHA1HMAC-SHA256
    • 示例(Python):
      import hmac
      import hashlib
      import base64message = "GET&/api/resource&oauth_consumer_key=client_id&oauth_timestamp=1687302123"
      signature = hmac.new(key=b'shared_secret', msg=message.encode(), digestmod=hashlib.sha1).digest()
      encoded_signature = base64.b64encode(signature).decode()
      
  3. 附加签名到请求

    • 客户端将签名附加到请求中(如作为查询参数或请求头)。
    • 示例请求:
      GET /api/resource?oauth_consumer_key=client_id&oauth_signature=encoded_signature&oauth_timestamp=1687302123 HTTP/1.1
      
  4. 服务器验证

    • 服务器重新计算签名(使用相同的算法和密钥),并与客户端提供的签名对比。
    • 若签名一致且时间戳在有效期内(如 ±5 分钟),则认证通过;否则拒绝请求。
(2)关键组件
  • 共享密钥(Secret Key):客户端与服务器共享的密钥,用于生成和验证签名。
  • 时间戳(Timestamp):防止重放攻击(Replay Attack),通常以 Unix 时间戳表示。
  • Nonce:随机字符串,确保每次请求的签名唯一(可选)。
  • 签名算法:如 HMAC-SHA1、HMAC-SHA256。
3. MAC Token 的工作原理
(1)认证流程
  1. 客户端请求资源

    • 客户端构造请求参数(如 URL、方法、时间戳)。
    • 使用共享密钥生成签名,并附加到请求中。
  2. 服务器验证签名

    • 服务器提取请求中的时间戳和签名。
    • 使用共享密钥重新计算签名,并与客户端提供的签名对比。
    • 若签名一致且时间戳在允许范围内(如 ±5 分钟),则认证通过。
  3. 返回响应

    • 若验证通过,服务器返回请求的资源;否则返回 401 Unauthorized。
(2)安全性设计
  • 防篡改:签名依赖请求参数和共享密钥,任何篡改都会导致签名不匹配。
  • 防重放攻击:时间戳限制请求的有效期,防止旧请求被重复使用。
  • 无状态性:服务器无需存储会话状态,但需维护共享密钥的安全性。
4. MAC Token 的使用场景
(1)OAuth 1.0a 协议
  • OAuth 1.0a 是 MAC Token 的典型应用场景,用于第三方应用访问用户资源。
    • 流程
      1. 用户授权第三方应用访问资源。
      2. 服务器生成 consumer_keyconsumer_secret,第三方应用使用 MAC Token 调用 API。
      3. 每次请求均需签名验证,确保请求来自授权应用。
(2)服务间通信
  • 微服务架构:服务 A 调用服务 B 时,通过 MAC Token 验证身份。
    • 优势:无需在服务 B 存储会话状态,适合分布式系统。
(3)高安全需求场景
  • 金融系统:银行 API 调用需确保请求未被篡改。
  • 物联网设备:设备与服务器通信时,通过 MAC Token 防止中间人攻击。
(4)API 限流与审计
  • 限流:通过时间戳和签名限制请求频率。
  • 审计:记录签名和时间戳,便于追溯请求来源。
5. MAC Token 的优缺点
优点
  • 高安全性:每次请求均需签名,防止 Token 泄露后被滥用。
  • 防重放攻击:时间戳限制请求有效期。
  • 无状态性:服务器无需存储会话状态,适合分布式系统。
缺点
  • 实现复杂度高:需管理共享密钥和签名验证逻辑。
  • 依赖网络同步:客户端和服务器的时间需同步(误差需控制在 ±5 分钟内)。
  • 密钥管理困难:共享密钥泄露会导致整个系统被攻破。
6. MAC Token 与 Bearer Token 的对比
特性MAC TokenBearer Token
认证方式动态签名验证(需共享密钥)Token 即凭证(持有即有权)
安全性高(即使 Token 泄露,无法伪造签名)依赖 HTTPS(Token 泄露后可被滥用)
实现复杂度高(需生成/验证签名、处理时间戳)简单(服务器只需验证 Token 有效性)
适用场景服务间通信、OAuth 1.0a、高安全需求Web API、单页应用(SPA)、微服务
状态管理有状态(需验证签名和时间戳)无状态(服务器无需存储会话)
扩展性依赖共享密钥(扩展困难)支持分布式系统(JWT 可携带用户信息)
7. 实际应用示例:OAuth 1.0a 的 MAC Token
(1)OAuth 1.0a 流程
  1. 注册应用:开发者注册应用,获取 consumer_keyconsumer_secret
  2. 用户授权:用户授权第三方应用访问资源。
  3. 请求资源
    • 客户端构造请求参数(如 URL、方法、时间戳)。
    • 使用 consumer_secret 生成签名。
    • 附加签名到请求中(如 oauth_signature)。
  4. 服务器验证
    • 服务器使用 consumer_secret 重新计算签名,验证一致性。
    • 若验证通过,返回用户资源。
(2)签名生成示例
import hmac
import hashlib
import base64
import time# 请求参数
base_string = "GET&https://api.example.com/resource&oauth_consumer_key=client_id&oauth_nonce=abc123&oauth_timestamp=" + str(int(time.time()))
secret_key = "consumer_secret"# 生成签名
signature = hmac.new(secret_key.encode(), base_string.encode(), hashlib.sha1).digest()
encoded_signature = base64.b64encode(signature).decode()# 请求头
headers = {"Authorization": f"OAuth oauth_consumer_key=\"client_id\", oauth_signature=\"{encoded_signature}\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"{int(time.time())}\", oauth_nonce=\"abc123\""
}
8. 安全实践建议
  1. 共享密钥保护

    • 密钥需通过安全通道分发,避免明文存储。
    • 定期轮换密钥(如使用短期密钥 + 刷新机制)。
  2. 时间同步

    • 客户端和服务器时间误差需控制在 ±5 分钟内(可通过 NTP 同步)。
  3. 防重放攻击

    • 使用 nonce(一次性随机字符串)确保请求唯一性。
  4. 签名算法选择

    • 优先使用 HMAC-SHA256(比 SHA1 更安全)。
  5. HTTPS 强制

    • 所有请求必须通过 HTTPS 传输,防止密钥和签名被窃听。
9. 总结

MAC Token 是一种基于 HMAC 的高安全认证机制,适用于服务间通信、OAuth 1.0a 等场景。其核心在于 动态签名 + 时间戳,通过共享密钥验证请求合法性,有效防止篡改和重放攻击。尽管实现复杂度较高,但在需要强安全性的系统中(如金融、物联网)具有不可替代的优势。相比 Bearer Token,MAC Token 更适合机器对机器通信,而 Bearer Token 更适合用户认证场景。

相关文章:

【分布式技术】Bearer Token以及MAC Token深入理解

Bearer Token以及MAC Token深入理解 **Bearer Token 详解****1. 什么是 Bearer Token&#xff1f;****2. Bearer Token 的构建详情****&#xff08;1&#xff09;生成流程****&#xff08;2&#xff09;Token 示例&#xff08;JWT&#xff09;****&#xff08;3&#xff09;Tok…...

WebRTC(七):媒体能力协商

目的 在 WebRTC 中&#xff0c;每个浏览器或终端支持的音视频编解码器、分辨率、码率、帧率等可能不同。媒体能力协商的目的就是&#xff1a; 确保双方能“听得懂”对方发的媒体流&#xff1b;明确谁发送、谁接收、怎么发送&#xff1b;保障连接的互操作性和兼容性。 P2P的基…...

(线性代数最小二乘问题)Normal Equation(正规方程)

Normal Equation&#xff08;正规方程&#xff09; 是线性代数中的一个重要概念&#xff0c;主要用于解决最小二乘问题&#xff08;Least Squares Problem&#xff09;。它通过直接求解一个线性方程组&#xff0c;找到线性回归模型的最优参数&#xff08;如权重或系数&#xff…...

【机器学习】数学基础——标量

目录 一、标量的定义 二、标量的核心特征&#xff1a;无方向的纯粹量级 2.1 标量 vs 矢量 直观对比 三、 标量的数学本质&#xff1a;零阶张量 3.1 张量阶数金字塔 3.2 标量的数学特性 四、 现实世界的标量图谱 4.1 常见标量家族 4.2 经典案例解析 五、 标量的运算奥秘…...

基于python代码的通过爬虫方式实现TK下载视频(2025年6月)

Tk的视频页面通常需要登录才能获取完整数据,但通过构造匿名游客的请求,我们可以绕过登录限制,提取视频的元信息(如标题、ID和播放地址)。核心思路如下: 构造匿名Cookie:通过模拟浏览器的请求,获取Tk服务器分配的游客Cookie。解析网页:利用BeautifulSoup解析HTML,定位…...

Go 语言的堆糖图片爬虫

基于 Go 语言的堆糖图片爬取探索之旅 在互联网的浩瀚海洋中&#xff0c;堆糖网以其丰富多样的高清图片、美图壁纸等内容吸引了众多用户。对于图片爱好者来说&#xff0c;能高效获取心仪的图片资源无疑是一件极具吸引力的事情。今天&#xff0c;就带大家走进一段基于 Go 语言的…...

python+uni-app基于微信小程序的儿童安全教育系统

文章目录 具体实现截图本项目支持的技术路线源码获取详细视频演示&#xff1a;文章底部获取博主联系方式&#xff01;&#xff01;&#xff01;&#xff01;本系统开发思路进度安排及各阶段主要任务java类核心代码部分展示主要参考文献&#xff1a;源码获取/详细视频演示 ##项目…...

DAY 39 图像数据与显存

图像数据的格式&#xff1a;灰度和彩色数据模型的定义显存占用的4种地方 模型参数梯度参数优化器参数数据批量所占显存神经元输出中间状态 batchisize和训练的关系 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader ,…...

ELK搭建

1、elasticsearch和kibana搭建配置见 https://blog.csdn.net/yh_zeng2/article/details/148812447?spm1001.2014.3001.5501 2、logstash 下载 下载和elasticsearch版本一致的logstash&#xff0c;下载地址&#xff1a; Past Releases of Elastic Stack Software | Elastic …...

【ELK(Elasticsearch+Logstash+Kibana) 从零搭建实战记录:日志采集与可视化】

ELK(ElasticsearchLogstashKibana) 从零搭建实战记录&#xff1a;日志采集与可视化 本文记录了我在搭建ELK(Elasticsearch, Logstash, Kibana)技术栈时的完整实战过程。使用Docker Compose快速搭建了ELK服务端&#xff08;监控主机&#xff09;&#xff0c;并通过Filebeat实现…...

反无人机系统:技术利刃如何守护低空安全?

反无人机系统&#xff1a;技术利刃如何守护低空安全&#xff1f; ——从军事防御到城市安防的全景解析 一、技术体系&#xff1a;从“电磁软杀伤”到“激光硬摧毁”的立体防御网 反无人机技术本质是一场“降维打击”&#xff1a;用百万级防御系统对抗千元级消费无人机。当前…...

第十章——8天Python从入门到精通【itheima】-102-Python基础综合案例-数据可视化(pyecharts的入门使用+数据处理)

目录 102节——pyecharts的入门使用 1.学习目标 2.pyecharts入门——基础折线图 3.pyecharts的配置对象有哪些&#xff1f; 4.全局配置——set_global_opts 5.小节总结 103节——数据处理 1.学习目标 2.无法继续关于第一阶段的pyecharts的相关学习 因为关于JSON数据获…...

Neo4j 中存储和查询数组数据的完整指南

Neo4j 中存储和查询数组数据的完整指南 图形数据库 Neo4j 不仅擅长处理节点和关系&#xff0c;还提供了强大的数组(Array)存储和操作能力。本文将全面介绍如何在 Neo4j 中高效地使用数组&#xff0c;包括存储、查询、优化以及实际应用场景。 数组在 Neo4j 中的基本使用 数组…...

云原生/容器相关概念记录

文章目录 网络与虚拟化技术云平台与架构容器与编排容器网络方案性能优化与工具硬件与协议 网络与虚拟化技术 P4可编程网关 P4: Programming Protocol-independent Packet Processors一种基于P4语言的可编程网络设备&#xff0c;支持自定义数据包处理逻辑。P4可编程技术详解&am…...

uni-app项目实战笔记21--uniapp缓存的写入和读取

一、缓存的写入 uni.setStorageSync("storageClassList",classifyList.value) 二、缓存的读取&#xff0c;如果缓存不存在&#xff0c;则返回空数组 const storageClassList uni.getStorageSync("storageClassList") || []; 三、对读取到的数据进行转…...

操作系统概述

覆盖了操作系统概述、运行机制、中断、异常、操作系统的五大结构、虚拟机。 借鉴&#xff1a;王道、我的好朋友杨某、我的笔记。 一、操作系统概念 概念 1.操作系统体现了封装思想 由于底层硬件只接受二进制的指令不方便用户操作&#xff0c;所以操作系统把这些封装成简易的…...

探索数据的力量:Elasticsearch中指定链表字段的统计查询记录

目录 一、基本的数据结构说明 二、基本的统计记录 &#xff08;一&#xff09;统计当前索引中sellingProducts的所有类型 &#xff08;二&#xff09;检索指定文档中sellingProducts的数据总量 &#xff08;三&#xff09;检索指定文档中sellingProducts指定类型的数量统计…...

【Datawhale组队学习202506】YOLO-Master task03 IOU总结

系列文章目录 task01 导学课程 task02 YOLO系列发展线 文章目录 系列文章目录前言1 功能分块1.1 骨干网络 Backbone1.2 颈部网络 Neck1.3 头部网络 Head1.3.1 边界框回归头1.3.2 分类头 2 关键概念3 典型算法3.1 NMS3.2 IoU 总结 前言 Datawhale是一个专注于AI与数据科学的开…...

C/C++数据结构之静态数组

概述 静态数组是C/C中一种基础的数据结构&#xff0c;它允许用户在编译时便确定数组的大小&#xff0c;并分配固定数量的连续存储空间来存放相同类型的元素。静态数组的主要特点是&#xff1a;其大小在声明时就必须指定&#xff0c;且在其生命周期内保持不变。这也意味着&#…...

pyqt f-string

文章目录 一、f-string的基本语法二、代码中的具体应用拼接效果 三、f-string的核心优势四、与其他字符串格式化方式的对比五、在Qt程序中的实际作用六、扩展用法&#xff1a;在f-string中添加格式说明 Python的 f-string&#xff08;格式化字符串字面值&#xff09; 特性&…...

夏普 AR-2348SV 打印机信息

基本信息&#xff1a;这是一款黑白 A3 激光多功能数码复合机&#xff0c;可实现打印、复印、扫描功能。性能参数 打印 / 复印速度&#xff1a;23 张 / 分钟。分辨率&#xff1a;600x600dpi&#xff0c;能确保文字和图像清晰。最大打印 / 复印尺寸&#xff1a;A3。纸张支持&…...

跨个体预训练与轻量化Transformer在手势识别中的应用:Bioformer

目录 一、从深度学习到边缘部署&#xff0c;手势识别的新突破 &#xff08;一&#xff09;可穿戴设备 边缘计算 个性化医疗新可能 &#xff08;二&#xff09;肌电信号&#xff08;sEMG&#xff09;&#xff1a;手势识别的关键媒介 &#xff08;三&#xff09;挑战&#…...

探索常识性概念图谱:构建智能生活的知识桥梁

目录 一、知识图谱背景介绍 &#xff08;一&#xff09;基本背景 &#xff08;二&#xff09;与NLP的关系 &#xff08;三&#xff09;常识性概念图谱的引入对比 二、常识性概念图谱介绍 &#xff08;一&#xff09;常识性概念图谱关系图示例 &#xff08;二&#xff09…...

人人都是音乐家?腾讯开源音乐生成大模型SongGeneration

目录 前言 一、SongGeneration 带来了什么&#xff1f; 1.1 文本控制与风格跟随&#xff1a;你的想法&#xff0c;AI 精准实现 1.2 多轨生成&#xff1a;从“成品”到“半成品”的巨大飞跃 1.3 开源&#xff1a;推倒“高墙”&#xff0c;共建生态 二、3B 参数如何媲美商业…...

一,python语法教程.内置API

一&#xff0c;字符串相关API string.strip([chars])方法&#xff1a;移除字符串开头和结尾的空白字符&#xff08;如空格、制表符、换行符等&#xff09;&#xff0c;它不会修改原始字符串&#xff0c;而是返回一个新的处理后的字符串 chars&#xff08;可选&#xff09;&…...

python中学物理实验模拟:凸透镜成像和凹透镜成像

python中学物理实验模拟&#xff1a;凸透镜成像和凹透镜成像 凸透镜成像 凸透镜是指中间厚、边缘薄的透镜。它对光线有会聚作用&#xff0c;即光线通过凸透镜后会向主光轴方向偏折。 成像原理 基于光的折射&#xff0c;平行于主光轴的光线经凸透镜折射后会聚于焦点&#xff…...

【AGI】突破感知-决策边界:VLA-具身智能2.0

突破感知-决策边界&#xff1a;VLA-具身智能2.0 &#xff08;一&#xff09;技术架构核心&#xff08;二&#xff09;OpenVLA&#xff1a;开源先锋与性能标杆&#xff08;三&#xff09;应用场景&#xff1a;从实验室走向真实世界&#xff08;四&#xff09;挑战与未来方向&…...

2D曲线点云平滑去噪

2D曲线点云&#xff0c;含许多噪声&#xff0c;采用类似移动最小二乘的方法&#xff08;MLS)分段拟合抛物线并投影至抛物线&#xff0c;进行点云平滑去噪。 更通俗的说法是让有一定宽度的曲线点云&#xff0c;变成一条细曲线上的点。 分两种情况进行讨论&#xff1a; 1&#…...

靶场(二十一)---小白心得靶场体会---DVR4

先看端口&#xff0c;看到了一个dvr的服务&#xff0c;老规矩只要有服务就先去看看 PORT STATE SERVICE VERSION 22/tcp open ssh Bitvise WinSSHD 8.48 (FlowSsh 8.48; protocol 2.0; non-commercial use) | ssh-hostkey: | 3072 21:25:f0:53:b4…...

Qt + C++ 入门2(界面的知识点)

补充前面没有说到的一点就是&#xff0c;qt的页面你可以用qt自带的也就是前面所说的自动生成.UI文件生成前端所谓的界面&#xff0c;然后往里面拖控件就可以了&#xff0c;这个UI界面非常的适合用于新手&#xff0c;以及某些软件少量的界面应用 。但是有一个难点就是后期这个UI…...

计算机网络第九章——数据链路层《流量控制和可靠传输》

一、回顾概念 前面上一章讲了数据链路层的《差错控制》&#xff0c;那么回顾一下差错控制和可靠传输的区别&#xff1a; 差错控制&#xff1a;发现一个帧里的【位错&#xff08;比特错&#xff09;】 检错&#xff08;奇偶校验码、CRC循环冗余校验码&#xff09;&#xff1a;接…...

Zephyr 调试实用指南:日志系统、Shell CLI 与 GDB 全面解析

本文深入讲解 Zephyr 的调试利器&#xff0c;包括统一日志系统&#xff08;logging subsystem&#xff09;、内置命令行&#xff08;Shell CLI&#xff09;、与 GDB 调试集成方法&#xff0c;帮助开发者快速定位问题、分析运行时行为&#xff0c;实现高效开发与排障。 一、日志…...

【知识图谱提取】【阶段总结】【LLM4KGC】LLM4KGC项目提取知识图谱推理部分

文章目录 前言LLM4KGC的三个部分显卡使用效果前言 之前在学习基于大模型的知识图谱提取,就找到了LLM4KGC这个项目: 项目地址: https://github.com/ChristopheCruz/LLM4KGC/ 总体来说,这个项目没有什么比较高深的idea,年份也比较古老,但确实挺适合入手的。主要是绝对简…...

基于YOLO的智能车辆检测与记录系统

基于YOLO的智能车辆检测与记录系统 摘要 本报告总结了智能车辆检测系统的开发工作&#xff0c;主要包括车辆数据标注、YOLO模型训练及QT交互系统搭建三部分。通过使用专业标注工具完成车辆目标数据集的标注与预处理&#xff0c;基于YOLO模型构建车辆检测算法并优化训练流程&a…...

5.2 Qt Creator 使用FFmpeg库

一、目录结构 ├─3rdparty # 第三方依赖库 │ └─ffmpeg-4.4.3 # ffmpeg库 │ ├─mingw # 用MinGW64编译的库 │ │ ├─bin │ │ ├─include │ │ └─lib │ └─msvc # 用MSVC编译的库 │ ├─bin │ …...

C++基础练习 sort函数,用于排序函数

题目&#xff1a; https://acm.hdu.edu.cn/showproblem.php?pid2039 解答&#xff1a; #include <iostream> #include <cmath> #include <algorithm> using namespace std;double a[3]; int main(){int n;cin>>n;while(n--){cin>>a[0]>>…...

【Docker 08】Compose - 容器编排

&#x1f308; 一、Docker Compose 介绍 ⭐ 1. Docker Compose 是什么 Docker Compose 是由 Docker 官方提供的一个用于定义和运行多容器应用的工具&#xff0c;它让用户可以通过一个 YAML 文件&#xff08;通常是 docker-compose.yml&#xff09;来配置应用所需要的服务&…...

docker执行yum报错Could not resolve host: mirrorlist.centos.org

解决办法&#xff1a; -- 依次执行以下命令cd /etc/yum.repos.d/sed -i s|#baseurlhttp://mirror.centos.org|baseurlhttp://vault.centos.org|g /etc/yum.repos.d/CentOS-*sed -i s/mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-*yum update -yecho "export LC_ALL…...

信贷域——信贷授信业务

摘要 本文详细介绍了信贷授信业务&#xff0c;包括其核心目标、典型流程、不同机构授信流程的对比、授信业务的其他类型以及授信模块的技术实现。信贷授信是金融机构在放贷前对客户信用额度的评估与审批流程&#xff0c;旨在控制风险、合理设定额度和期限、确保合规&#xff0…...

python的校园兼职系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…...

深度剖析 PACK_SESSIONID 实现原理与安全突破机制

&#x1f310; 深度剖析 PACK_SESSIONID 实现原理与安全突破机制 &#x1f5bc;️ 1. 完整数据处理流程 #mermaid-svg-TW7jVIcz81hCZVS9 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-TW7jVIcz81hCZVS9 .error-ico…...

从0开始学习计算机视觉--Day02--数据驱动

上次我们在课程里了解到&#xff0c;亚马逊网站在当时构建了一个在那时候最大的供AI训练的数据集&#xff0c;为了推广这个测试&#xff0c;他们举办了比赛邀请了许多的参赛者&#xff0c;识别图片的标准是输出的类别中只要在前面五个里包含了正确答案就算识别成功。在这个过程…...

【LeetCode#第198题】打家劫舍(一维dp)

198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#…...

stm32串口(uart)2转发到串口(uart)3实现

今天博主在用kelil5写stm32的程序时遇到了一个全局变量因为在中断和任务切换时没有加 volatile 修饰&#xff0c;导致任务检测不到标志位变化&#xff0c;无法实现效果的问题。 全部代码&#xff1a; /* USER CODE BEGIN Header */ /***************************************…...

数据结构——函数填空题

链队出队入队 入队&#xff1a;新指针p赋给队尾的下一个&#xff0c;再赋给队尾 出队&#xff1a;队首指针赋给p&#xff0c;后移 p的下一个赋给队首指向的下一个 若队尾p&#xff0c;则证明首尾相连为1个 字符串匹配算法 二叉树 统计二叉树度为1的节点 树T为空&#xff0…...

什么是跨域问题?后端如何解决跨域问题?

跨域问题是指浏览器为了安全&#xff0c;对不同域&#xff08;包含不同协议、不同端口或不同主机名&#xff09;的请求进行限制&#xff0c;从而导致请求无法正常访问后端接口。 跨域问题的产生源于浏览器的同源策略&#xff08;Same-Origin Policy&#xff09;&#xff0c;这…...

使用ccs生成bin

CCS12.6 编译生成BIN文件正确方法_ccs生成bin文件-CSDN博客...

Python 邻接表详细实现指南

邻接表是图数据结构的一种高效表示方法&#xff0c;特别适合表示稀疏图。下面我将用 Python 详细讲解邻接表的多种实现方式、操作方法和实际应用。 一、邻接表基础概念 邻接表的核心思想是为图中的每个顶点维护一个列表&#xff0c;存储与该顶点直接相连的所有邻接顶点。 邻…...

FVISION 未来视界工作室:AI驱动的创新与智能外包平台

大家好&#xff0c;今天给大家介绍一个非常有意思的AI创新平台——FVISION 未来视界工作室。如果你正在寻找高效、智能、前沿的数字化工具和服务&#xff0c;这里一定有你想要的答案&#xff01; &#x1f31f; 平台简介 FVISION 未来视界工作室专注于AI驱动的创新应用开发&am…...

领域驱动设计(DDD)【3】之事件风暴

文章目录 说明一 事件风暴理论知识1.1 事件风暴的核心目标1.2事件风暴的关键步骤1.2.1 准备工作1.2.2 核心流程1.2.3 事件风暴的输出 1.3 事件风暴的优势1.4 常见问题Q1&#xff1a;事件风暴适合所有项目吗&#xff1f;Q2&#xff1a;事件风暴后如何落地&#xff1f;Q3&#xf…...