MFA令牌原理详解:TOTP算法、硬件与软件令牌及部署实践
MFA令牌多因素认证令牌这几年在各类平台、企业内部系统里出现的频率越来越高。很多人手机上装了一堆认证器App或者办公桌上放着一个会每隔几十秒跳动数字的小设备但真要问一句这玩意儿到底怎么起作用的、为什么能保证安全能讲清楚的人并不多。我这些年做安全体系建设和账号防护落地被问得最多的也是这个话题。这篇文章就把MFA令牌的技术原理、常见形态、底层算法和工作流程一次性讲透顺便把实际部署中的坑也一并填上。1. 为什么需要MFA令牌一个真实的风险场景先说一个我见过太多次的场景。某公司的财务系统密码策略已经是强密码要求大小写字母、数字、特殊字符还要三个月改一次。结果怎么样依然有员工的账号被登录财务数据险些被导出。排查下来问题是密码本身被泄露了可能是钓鱼邮件也可能是员工在某个不正规网站上用了同一套密码。这就是密码这个单一认证因素的致命弱点它本质上是一个“你知道的东西”一旦被他人知晓就再也没有任何区分度。攻击者拿到密码就等于拿到了全部权限。MFA令牌解决的就是这个“单一因素失效”的问题。它引入了第二层甚至第三层认证因素。从安全模型上说认证因素分三类因素类型含义典型例子知识因素你知道的东西密码、PIN码持有因素你拥有的东西手机、硬件令牌、智能卡生物因素你本身是什么指纹、人脸、虹膜MFA 的意思就是必须组合不少于两个不同类别的因素才能通过认证。而MFA令牌恰好承担的是“持有因素”这个角色。即使密码泄露没有令牌攻击者依然无法登录。这里要特别强调一下很多人觉得“密码验证码”就是双因素但如果验证码是通过短信发给同一个手机号而且手机号又能被补卡或者伪造身份重置那这个方案的强度其实大打折扣。最理想的情况是使用独立的、不依赖网络的基础设施来完成令牌计算这也是为什么专业级方案更倾向于用硬件令牌或认证器App。2. 令牌的核心形态从硬件到软件的演化MFA令牌的形态经历了一个明显的变化过程从早期的纯硬件设备逐步演进到以软件为主流。2.1 硬件令牌最原始也最抗干扰的形态早期在企业环境中最常见的硬件令牌是一个小巧的挂件式设备屏幕上有六位数字每隔30秒或60秒自动变化一次。银行U盾里的动态口令功能本质上也是同一类东西只不过把密码算法封装在了一个USB设备里。硬件令牌最大的优势是“离线可用”和“抗劫持”它不需要连接网络就能根据当前时间计算出动态口令而且私钥完全固化在芯片内部理论上无法被提取。攻击者哪怕入侵了你的电脑也无法远程读取到令牌里的种子值。我记得有一次处理某客户的安全事故攻击者已经拿到了员工笔记本的完整控制权包括浏览器里保存的会话Cookie但就是因为登录后台额外要求了RSA硬件令牌上的动态口令最终那条攻击链被硬生生阻断在半路。2.2 软件令牌把手机变成随身令牌随着智能手机普及软件令牌逐渐取代了硬件令牌的主流地位。以谷歌身份验证器、微软Authenticator、老牌的Authy等为代表它们通过TOTP规范基于时间的一次性密码算法在本地生成六位动态码。注意关键点——动态码是在你手机本地算出来的不需要联网。生成的机制不依赖服务器实时交互而是依赖时间同步和双方共享的一串密钥种子。软件令牌还有一个硬件令牌不具备的好处支持推送到手机的被动确认模式。用户只需要在弹窗里点一下“确认登录”即可省去了手动输入六位数字的步骤——不过推送模式的实现逻辑跟TOTP不同它依赖服务端主动推送消息所以对网络质量有一定要求。2.3 选择建议按场景匹配形态在实际部署中我给团队的建议比较明确个人账号防护优先使用软件令牌因为它零成本、便携、体验好。企业内部高危系统财务、代码仓库、生产环境建议硬令牌软件令牌双通道确保某些场景下即使手机丢失也有备用方案。极高权限的运维跳板机硬件令牌是不二之选因为运维人员操作的往往是一整个基础设施的安全边界。3. 底层原理拆解TOTP算法是怎么算出一串数字的经常有人好奇那六位数字到底是什么决定的为什么每半分钟就变一次它跟我的账号、密码有没有关系答案是没有直接关系但在分发令牌的时候你的账号和“种子密钥”已经完成了绑定关系。下面我用整个流程拆解一遍真实工作原理。3.1 种子值一切安全的基础当你第一次绑定MFA令牌时无论是扫描二维码还是手动输入Base32编码的那串字符本质上是把“种子密钥”通常叫seed或secret从服务端传到了你的令牌端。这个seed是一串随机的、通常160位左右的二进制数据但会通过Base32编码翻译成方便人类输入的字符串。也就是说从这一刻起你的服务端和你的手机令牌就共享了同一个“密码因子”。这个因子永远只存在两端服务器端和你的令牌端。实际的验证过程中没有任何一方需要把seed明文传输给对方因为双方各持一份副本足够了。如果在实际项目中我是建议强制让用户重置并重新绑定而非直接导出seed的。因为导出过程中一旦被打日志记录等于把核心机密文件直接暴露。扫描二维码是最安全的方式——二维码内容一次性展示扫码即弃不会遗留历史痕迹。3.2 时间因子让密码“动起来”的关键光有静态的seed还不够如果每次都计算同一个结果那跟固定密码就没有区别了。TOTP的关键就在于引入了“当前时间”这个变量。具体算法是这样的取当前时间的Unix时间戳从1970年1月1日至今的秒数记为T。将T除以时间步长默认30秒取整数商。这个商可以理解为“从起点到当前时间一共经过了几个时间段”。把seed和时间段编号拼在一起放入HMAC-SHA1哈希函数中计算。从哈希结果中提取出一个31位长度的动态二进制数再取模10的6次方得到六位数字。这里的HMAC指的是带密钥的哈希消息认证码它保证只有知道seed的人才能算出正确的动态码。因为时间段编号是整数且双方都在按同一个时间轴工作所以同一秒内服务端和令牌端计算出来的六位数字完全一致。提示时间步长设为30秒是RFC 6238标准里推荐的默认值。太短会导致用户来不及输入太长又留给攻击者太多“有效时间窗”。30秒是一个各方面都比较平衡的选择。3.3 验证过程为什么能容忍一分钟的偏差有人可能会问如果我手机时间跟服务器时间差了几秒钟甚至差了一两分钟那验证码不就对不上了吗这个问题涉及TOTP验证器的一个设计细节服务端在验证用户提交的验证码时并不是只检查当前时间段那一格。它会检查当前时间段以及前后各一到两个时间段通常支持1到2格的历史时间段和一些未来的时间段容忍窗口。也就是说哪怕你的手机跟服务器时间差了一个步长验证依然能通过。这带来一个便利也带来一个代价如果验证码被中间人截获攻击者在有效时间窗口内仍然可以利用它完成认证。所以验证码的有效期尽量压缩标准的做法是验证码在生成30秒后就失效服务端只允许当前这一格加前一格的通融。我自己在实际实现过程中是把允许的误差窗口设置为“当前时间段的上一格、当前格、下一格”这样既容忍了普遍的时钟漂移又把攻击者的利用窗口压制在90秒以内。4. 标准协议家族OTP、TOTP、HOTP和U2F的图谱要全面理解MFA令牌就不能只盯着TOTP一种算法。整个令牌协议家族里有四个名字经常出现而且它们解决的问题各有侧重。4.1 HOTP基于计数器的一次性密码HOTPHMAC-Based One-Time Password是最早的标准之一它不依赖于时间而是依赖一个单调递增的计数器。令牌端和服务端各自维护同一个计数器每次生成验证码时将计数器和seed放入HMAC函数验证成功后双方计数器同时递增。这种设计不受时钟漂移的影响但带来了另一个问题如果用户按了N次生成按钮又没有去验证那么双方计数器的同步就会脱节。为解决这个脱节服务端通常会在验证失败时尝试往后多批次搜索比如允许计数器偏移100次来匹配用户输入的验证码。HOTP实际用得越来越少因为它的体验不够好——你没有直观的“当前有效验证码”概念每按一次都会产生新码且旧的立即失效。不过在一些离线场景比如某些加密磁盘解锁界面里它还是有自己的用武之地。4.2 TOTP时间替代计数器TOTP的本质是HOTP的一种变体用“时间段编号”替代“计数器”作为动态变量。因为时间对通信双方都是公开信息这一步替代就直接消除了计数器不同步的体验问题代价是多了一个“时间源必须各自校准”的约束。今天你在各类平台上看到的“六位验证码”“动态口令”绝大多数都是TOTP在驱动。标准参考是RFC 6238算法本身简单、开源、有多语言实现库因此成为事实上的通用方案。4.3 U2F/WebAuthn目前安全上限最高的令牌形态严格意义上讲U2F以及它演进而来的WebAuthn标准已经不局限于“动态密码”了。它是一个基于公钥密码学的认证协议注册阶段令牌生成一对公私钥对将公钥提交给服务器私钥保存在令牌安全硬件内。认证阶段服务器发送一段挑战数据令牌用私钥签名后返回服务器用公钥验签。验证通过即代表用户确实持有这块令牌。因为私钥从不出硬件也没有任何可重放的一次性密码U2F在抵抗钓鱼攻击方面表现极其出色。想想看钓鱼网站可以骗取你的密码可以骗你输入验证码但它无法诱导你的硬件执行签名去回应一个它伪造的域名挑战——因为验证域名和挑战内容本身就是认证协议的一部分。有些朋友会混淆“WebAuthn”和“Passkey”我简单区分一下Passkey是基于WebAuthn规范的具体落地形式常见于苹果、谷歌等通行密钥方案。你可以把它理解成U2F的现代升级同时允许使用手机内置生物识别来解锁私钥提高易用性。5. 完整认证流程从登录到验证的每一步讲完了底层的密码学原理现在把它们串成一个完整的认证流程。以最常见的“账号密码TOTP验证码”模式为例用户打开登录页面输入用户名和密码提交给服务端。服务端先校验密码。如果密码不正确直接拒绝根本不需要验证第二因素——这既避免无谓的计算更重要的是不给攻击者探测第二因素的机会。密码正确后服务端查询该用户是否绑定了MFA令牌。如果绑定过就会返回一个“需要第二因素验证”的挑战响应。前端页面展示六位验证码输入框。用户打开手机上的认证器App读取当前动态码并填入。服务端收到验证码后取当前时间段编号结合数据库中存储的seed执行HMAC计算比对两个六位数字是否一致。验证通过后服务端认为“密码持有令牌”两个因素都已完成此时才发放一个登录会话凭证Session Token或JWT。有一个关键设计细节值得注意第二因素验证通过后服务端生成的会话凭证拥有完整权限但绝不能让“正在等待第二因素验证”的前置会话也拥有实际业务权限。我之前见过一个第三方平台因为图省事在等待验证码时就让前置会话可以拉取部分API数据结果成了一个被反复利用的漏洞。这是一条红线级别的设计原则。6. 恢复码、备份和灾难恢复部署中最容易忽略的环节每次在企业里推进MFA落地几乎都会遇到同一个抵制声音——“万一我手机丢了岂不是永远登不进去了”这个担忧完全合理而且没做好备份方案的MFA部署确实会造成严重后果。正确做法是在启用MFA时就同步提供一次性恢复码Backup Codes。恢复码的机制是在启用令牌绑定后平台生成一组只显示一次的随机码通常10个。每个恢复码只能使用一次用过后立即作废。恢复码本质上等同于绕过第二因素的“后门钥匙”所以获取它的场景必须强制校验身份比如已登录状态或密码正确。我给客户推行MFA时标准动作包含三条建议建议所有用户把恢复码打印出来放在办公室安全位置或者密码管理器中不要截图存手机相册。账号支持同时绑定两个或以上的令牌设备比如手机和备用平板这样主设备丢失时副设备依然能完成验证。如果用的是支持云同步的认证器App比如具备加密备份的令牌管理工具一定要分清“备份恢复”和“新设备迁移”两个流程不要误以为删掉App后云端自动就是安全锚点。关于恢复码的安全级别我再补一个细节设计上要尽量保证恢复码不是顺序数字而是足够随机的字符串至少128位熵并且服务端要以不可逆的方式存储比如哈希后的值避免数据库一旦泄露攻击者拿到全部恢复码统一接管账号。7. 时钟漂移问题和令牌校准技巧TOTP依赖时间这决定了“时钟漂移”是绕不开的话题。一个长期不开机、电池耗尽或者系统时间手动改过的手机都会导致验证码对不上。实际中遇到最多的场景是这样的用户手机换了块电池重启后发现时间自动变成了出厂年份打开认证器App生成的验证码自然全部无效——因为当前时间段编号跟服务端差了上万秒。常规处理办法检查手机系统设置确认开启“自动设置时间”。在认证器App的设置里如果提供了“时间校正”Time Correction选项可以手动校准偏移量。不要频繁手动校准因为多次校准会让偏移量记录混乱反而增加风险。在服务端实现层面我建议把“允许的时间窗口”做成可配置参数。对内部系统可以把步长窗口放宽到前后两格也就是容忍约150秒的偏差同时记录每次验证的时间偏移量一旦发现某用户经常触发窗口外偏移就有可能是时间问题或异常攻击信号。这两种场景可以通过“偏移观测异常提醒”分开处理而不是简单地扩大窗口。8. 部署落地中的常见问题和排查手册最后这部分我把这几年在项目实战中踩过的坑以及高频问题整理成一个小速查表供团队直接参考。8.1 验证码始终提示错误优先排查三类原因手机时间跟服务器时间明显不一致相差超过几分钟。种子值在扫描/输入时损坏常见于手动输入Base32编码时打错字母。服务器端数据库里保存的seed被意外加密或截断迁移数据库、复制字段时特别容易出现。排查建议不要一开始就怀疑算法实现先用一个已知正确的种子值在命令行里运行标准TOTP库生成验证码再和你手机上的动态码做对比。这一步能快速区分“两端算法逻辑是否一致”和“种子是否相同”。8.2 用户更换手机后无法登录这是部署阶段一定会碰到的问题。最推荐的是提前预防换手机前先在旧设备上关闭MFA再绑定新设备。如果旧设备已丢失那就只能走恢复码通道。如果恢复码也丢了只能走管理员人工重绑流程——这里通常需要验证身份证件或其他身份材料流程成本很高所以务必在推广阶段反复强调恢复码的重要性。8.3 企业账号的批量迁移问题给几百上千人同时上MFA时不要试图手工一张张扫码。正确姿势是采用“预激活”机制管理员在后台批量生成种子值通过加密渠道分发给每个用户用户导入到自己的认证器App后第一次登录时完成激活确认。这里有一个经验教训种子值的批量导出必须加密处理绝对不能放进普通Excel群发到公共文件夹里。一旦种子泄漏意味着所有令牌形同虚设。我这边每次做类似操作都要求种子文件通过独立加密通道传递并且发送后立即销毁本地副本。8.4 时间窗口与验证频次的平衡如果某些业务场景要求极高的安全性可以额外引入“速率限制”策略对同一个账号的验证码错误尝试次数设上限比如一小时内最多5次超过即锁定或告警。这样即便验证码被暴力尝试攻击者也没有足够空间去枚举六位数字。关于暴力破解这道防线六位数字的十进制约100万种组合在无限制条件下理论上几分钟就能跑完。但如果加上错误次数上限和逐步加长的冷却时间攻击成本就会指数级上升这也是所有认证系统必须叠加这两层保护的原因。9. 从令牌到零信任MFA不是终点而是起点当你把MFA令牌部署到位账号安全等级已经比“裸奔”密码模式提高了不止一个台阶。但我想给各位提个醒MFA不是万能药它解决的是“身份被冒用”的问题但它不能解决“授权过宽”的问题。一个账号即使通过了MFA如果它在业务系统里拥有远超需求的管理权限一旦会话被劫持攻击者依然可以通过已有的合法会话执行破坏操作。业界常说的“零信任模型”中MFA只是持续验证的第一步后续还需要设备健康度检查、行为分析、最小权限策略联动。在我接触的平台中真正把安全做到位的团队通常会这样组合所有外部登录入口强制MFA。内部API网关配置设备信任级别只有合规设备才能访问核心服务。定期审计每个账号的权限矩阵清除闲置的高权限账号。对敏感操作转账、删除、发布变更再次要求即时动态验证码。把这些层叠在一起才构成一个纵深防御体系。最后再说一个容易被忽略的小细节无论你用的是哪家的认证器App都要在设置里打开“应用锁定”或“生物识别保护”。这样即使手机被他人短暂拿到认证器里的令牌也不会被轻易展示。我在实际使用中发现这是成本最低、但立竿见影能提升令牌安全性的设置项。毕竟令牌再强大如果随手机一起落入他人之手它的保密性也就无从谈起了。

相关新闻

软件需求规格说明书模板:27页通用版,含政务移动办公与车辆管理示例

软件需求规格说明书模板:27页通用版,含政务移动办公与车辆管理示例

简介:这份《软件需求规格说明书模板(通用版)》面向IT项目初期的产品经理、需求分析师与开发测试人员,用于解决需求文档结构不统一、描述模糊、难以追踪验证等问题,帮助团队在立项阶段明确开发目标与范围。资源包内含1个…

2026/10/11 20:02:53 阅读更多 →
MFA令牌完全解读:原理、TOTP与实操指南

MFA令牌完全解读:原理、TOTP与实操指南

前阵子有朋友问我,说自己的某个平台账号提示“请绑定MFA令牌”,他也不知道这是什么,随手扫了个码绑定了事,结果后来越来越多地方要这玩意儿。其实不只是个人账号,现在很多企业内部系统、云服务平台、代码仓库都强制要求…

2026/10/11 20:02:53 阅读更多 →
OPC UA配置管理器实战:从证书交换到安全连接

OPC UA配置管理器实战:从证书交换到安全连接

简介:OPC UA配置管理器官方说明文档,围绕Kepware中OPC UA服务器的端点、受信任客户端/服务器、发现服务器、实例证书等核心配置项展开,适合工业自动化工程师、SCADA集成人员及OPC UA入门学习者查阅。文档从安全连接机理讲起,覆盖服…

2026/10/11 20:02:53 阅读更多 →

最新新闻

采矿CAD课程设计PPT:从软件操作到工程表达的全链路建模

采矿CAD课程设计PPT:从软件操作到工程表达的全链路建模

简介:本资源是一份面向高校采矿工程、地质环境与安全工程专业学生的《采矿CAD课程设计》教学课件,聚焦矿山地质环境治理与生态保护的CAD辅助设计实践。课件系统梳理了矿山地质环境定义、矿区生态破坏成因(含景观与生态双重破坏)、…

2026/10/12 0:54:26 阅读更多 →
桌面调度台 vs 云端 Agent 平台:Orca、美团 CatPaw、NVIDIA 路由器的三条路线谁先跑通

桌面调度台 vs 云端 Agent 平台:Orca、美团 CatPaw、NVIDIA 路由器的三条路线谁先跑通

桌面调度台 vs 云端 Agent 平台:Orca、美团 CatPaw、NVIDIA 路由器的三条路线谁先跑通 【免费下载链接】orca Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and …

2026/10/12 0:54:26 阅读更多 →
Kubernetes Python 客户端 V1beta2ResourceClaim 模型详解:Dynamic Resource Allocation 资源声明的完整 API 参考

Kubernetes Python 客户端 V1beta2ResourceClaim 模型详解:Dynamic Resource Allocation 资源声明的完整 API 参考

后端云原生容器编排 【免费下载链接】python Official Python client library for kubernetes 项目地址: https://gitcode.com/gh_mirrors/python1/python 点击查看 免费下载 导读 本文面向使用官方 Kubernetes Python 客户端(本项目仓库 gh_mirrors/p…

2026/10/12 0:54:26 阅读更多 →
CodeIgniter 4 Request 类详解:HTTP 请求的面向对象封装与全局数据安全访问

CodeIgniter 4 Request 类详解:HTTP 请求的面向对象封装与全局数据安全访问

后端Web框架 【免费下载链接】CodeIgniter4 Open Source PHP Framework (originally from EllisLab) 项目地址: https://gitcode.com/gh_mirrors/co/CodeIgniter4 点击查看 免费下载 本指南以 CodeIgniter 4 官方用户指南 request.rst 为主体,系统讲解框…

2026/10/12 0:54:26 阅读更多 →
Vibe Coding 的边界:从“70% 问题“到“80% 墙“,AI 编程五大局限性与人机分工深度解析

Vibe Coding 的边界:从“70% 问题“到“80% 墙“,AI 编程五大局限性与人机分工深度解析

文档教程Vibe Coding示例工程 【免费下载链接】vibe-vibe The First Systematic Vibe Coding Open-Source Tutorial | From Zero to Full-Stack, Empowering Everyone to Build Products with AI | Live at: www.vibevibe.cn ;首个系统化 Vibe Coding 开源教程 | 零…

2026/10/12 0:53:26 阅读更多 →
不用模拟器也能玩PS5游戏?拆解AnyPS5的“非模拟器魔法“:relinker重链接+PRX库+RDNA到SPIR-V

不用模拟器也能玩PS5游戏?拆解AnyPS5的“非模拟器魔法“:relinker重链接+PRX库+RDNA到SPIR-V

不用模拟器也能玩PS5游戏?拆解AnyPS5的"非模拟器魔法":relinker重链接PRX库RDNA到SPIR-V 【免费下载链接】AnyPS5 Tool for automatic PS5 executables porting to Linux and Windows 项目地址: https://gitcode.com/GitHub_Trending/an/Any…

2026/10/12 0:53:26 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →