DES安全性复盘与3DES续命逻辑:从暴力破解到中间相遇攻击
上一讲我们把DES的加密流程从头到尾过了一遍初始置换、16轮Feistel迭代、子密钥生成、S盒与P盒轮函数里的每一个细节都拆开看了。当时有个问题我一直压着没讲——DES到底安不安全它凭什么在70年代被当成宝贝又为什么在今天只能活在历史教科书里这两讲放在一起正好是一对因果先知道DES的死因才能理解3DES的续命方案。所以第二十二讲和第二十三讲我合并成一篇来写先复盘DES的安全性再拆解3DES为什么非要做三次不可。这篇内容适合两类人一类是正在系统性学习密码学的同学能把教材里“DES不安全”“3DES延长寿命”这种结论背后的计算和逻辑补齐另一类是维护过老系统的工程师尤其是那些还被迫跟老加密算法打交道的场景看完起码能说清楚“为什么留不得”“迁起来要盯哪些点”。1. 这两讲到底要解决什么问题先说清楚DES在整个密码学课程里的位置。前面几讲我们建立了分组密码的基本框架明文被切成固定长度的块通过多轮迭代完成混淆和扩散。DES是这套框架的经典样本但经典不代表完美。它从1977年正式成为标准到1999年被人用不到一天时间暴力破解活了二十多年已经算长寿。但问题恰恰在这里如果一个算法能被暴力破解为什么它还能撑二十年如果一个算法已经不安全为什么还要专门设计出3DES来延续它的生命周期这两个问题背后藏着对称密码设计里最核心的三件事密钥长度、分组大小、结构冗余。这也是我写这一篇时最想让你带走的东西。另外要强调一句DES的安全性讨论不是“DES很弱所以从今天起禁用”这种单薄的结论。它涉及一组更有层次的问题——是被密钥长度杀死的还是被结构缺陷杀死的暴力破解和数学分析分别扮演了什么角色3DES到底是用什么代价换来了续命理解了这些你再看今天AES-GCM、ChaCha20这类算法的设计取舍会顺很多。2. 安全性复盘DES是怎么从“军用级”走到“半天破解”的2.1 先看DES的安全底子Feistel结构到底强在哪很多人误以为DES被破解就说明它从头烂到尾这是不对的。DES的结构设计相当漂亮甚至可以说它是对称密码史上第一个把“混淆”和“扩散”做到教科书级别的实现。Feistel结构最聪明的地方在于加密和解密可以用同一套代码实现只是子密钥的使用顺序反过来。每一轮先左半部分和轮函数打交道再把左右互换这种交替处理让每一位明文在16轮之后都影响到输出的一半以上。再加上S盒的非线性替换和P盒的位重排DES在混淆和扩散上的设计是合格的。用一个揉面的类比你就能懂混淆就是把麦粒和水分均匀混进面团里看不出原来的颗粒扩散就是每一块面团里都包含了所有原料的信息。DES的S盒负责混淆P盒和置换负责扩散16轮迭代就是在反复做这件事。1990年之前没人公开找到DES的致命结构漏洞说明这套底子确实稳。2.2 56位密钥一道数学题算死了DESDES的密钥名义上是64位8字节但每一位字节的最后一位是奇偶校验位真正参与加密的只有56位。这个隐藏细节后来成了它的第一块墓碑。56位密钥意味着什么密钥空间大小是2的56次方约等于7.2乘以10的16次方。听着很大但密码学里的安全不是看空间大小本身而是看攻击者需要花多少时间和钱去遍历它。1977年就有学者公开指出以当时的技术趋势推断不出二十年建造一台几百万美元的机器就能在一天内穷举全部DES密钥。当时这个观点被当成危言耸听结果后来被证明是相当准确的预言。这里有一个关键的计算逻辑值得展开。假设一台专用机器能每秒测试100亿个密钥10^10量级穷举2^56个密钥需要多久2^56 / 10^10 ≈ 7.2 × 10^6秒约等于83天。如果每秒能测900亿个密钥那就缩短到不到10小时。问题不在于“现在能不能破解”而在于“摩尔定律让破解成本随时间急速下降”。1998年一台制造成本约25万美元的专用破解机已经能把DES密钥在56小时内穷举出来。DES的死亡不是结构崩塌是一道纯粹的成本数学题。2.3 从破解挑战到专用机器DES的陨落时间线DES的破解过程不是某一天突然发生的它是一步步在公众面前被剥掉安全外衣的。按照时间线复盘会看得很清楚时间破解方式耗时说明1997年互联网志愿者分布式破解约96天第一次公开证明56位密钥可以被全球协作攻克1998年专用破解机56小时约25万美元成本暴力穷举成为现实威胁1999年专用机互联网志愿者协同22小时15分钟成本进一步摊薄DES彻底失去“安全”标签这条时间线最值得品的是后面两次破解速度的进步主要来自硬件和并行规模而不是新的数学攻击。也就是说DES是被计算力杀死的。这也解释了为什么后来所有密码算法在设计时都把密钥长度当成头等大事再好的结构也架不住密钥空间被硬生生扫光。2.4 S盒和密码分析其实DES的设计功底很深暴力破解是明面上的死因但很多人不知道的是DES在数学分析层面的抗击打能力也很强。1990年前后学术界提出了两类重要的密码分析方法差分密码分析和线性密码分析。这两类方法专门通过观察“明文差异与密文差异之间的关系”或“明文位与密文位之间的线性相关性”来还原密钥。有趣的事情来了研究人员发现DES的S盒在设计上似乎刻意对抗了这两类攻击S盒的差分分布表和线性逼近表都经过了精心筛选。后来有资料透露设计团队在70年代就已经知道这类攻击的存在。所以DES在数学上没有“一推就倒”的致命后门这也是它能在80年代安然无恙的重要原因。但这里有一个反直觉的结论算法结构上的强救不了密钥长度上的弱。攻击者永远挑最便宜的那条路走。差分分析和线性分析虽然有效但需要海量选择明文对而穷举只需要一堆已知明文就能干。所以DES不是被聪明的攻击打死的是被笨但便宜的暴力打死的。3. 3DES的设计逻辑为什么两次不行一定三次3.1 双重DES的陷阱中间相遇攻击DES被宣布死刑之后最简单的续命思路是什么把算法加密两遍密钥长度变成112位不就行了吗这个想法直觉上没问题但设计密码学算法最怕的就是“直觉上没问题”。这就是3DES这讲里最核心的一个知识点中间相遇攻击。假设双重DES加密记为C E_{K2}(E_{K1}(P))。攻击者手里有一对已知明文P和密文C。他先枚举所有的K1对P做一次DES加密得到一长串中间值存成一张表再枚举所有的K2对C做一次DES解密得到中间值。当两次得到的中间值相等时就找到了正确的K1和K2。关键在这里因为DES加解密的结构是同一个算法中间值的枚举空间只有2^56不是2^112。攻击者用约2^56次加密准备好一张大表再用约2^56次解密去匹配总工作量大约2^57量级。这跟直接破解单重DES几乎是一个量级等于双重DES白加了56位密钥安全提升约等于零。用一个生活类比帮你记A和B约在两地之间的某座桥上接头但攻击者不需要分别追踪两个人他只需要站在桥中间等两边的人各自走过来见面瞬间就能同时抓住两头。中间相遇攻击要的就是那个“中间状态”。3.2 EDE模式中间用解密是为了兼容既然两次不行那就做三次。标准方案变成C E_{K3}(D_{K2}(E_{K1}(P)))。注意中间那一层不是加密而是解密。这个细节叫EDE模式Encrypt-Decrypt-Encrypt很多人第一次看到会疑惑为什么中间要夹一个解密解密不会削弱安全性吗答案是三层的加解密运算正好是同一族操作的组合中间用解密而不是加密对最终安全性没有实质影响。它带来的最大好处是兼容性当K1 K2 K3时整个运算退化成一次DES因为先加密再解密正好抵消只剩最后一次加密。这意味着老系统可以直接用3DES实现来兼容原来的DES密钥不用再准备一套单独的DES实现。这个设计眼光很长远。在算法切换的过渡期兼容性决定了新技术能不能平滑落地。如果3DES的EDE不能兼容DES很多系统和硬件设备就不得不保留两条加密链路迁移成本会成倍上升。所以EDE不是随手的安排是一种工程智慧的体现。3.3 三种密钥选项与真实有效强度3DES的密钥选项一般有三种选项密钥组织方式密钥位数实际有效强度选项一K1 K2 K356位56位等同于单重DES选项二K1 K3K2独立112位约112位选项三K1、K2、K3全独立168位约112位选项一纯粹是为了兼容老DES。选项二和选项三虽然密钥材料长度不同但有效强度都落在112位级别。为什么三个独立密钥不是168位因为3DES同样逃不过中间相遇攻击的变体攻击者可以分别从两端枚举K1和K3再在中间尝试K2整体计算规模被压到2^112量级。这就是所谓“有效密钥长度”和“密钥材料长度”的差别。另外提醒一句部分安全性研究指出选项二的实际强度在特定攻击模型下会低于112位。所以新系统只要条件允许一律用三个独立密钥别为了省空间去用两个密钥的变体。4. 3DES的局限性64位分组和112位强度都不够现代4.1 有效强度只有112位3DES把DES的生命延续了二十多年但它本质上是给一台老发动机装了两个涡轮底子还是老的。有效强度112位放在二十一世纪二十年代的威胁模型里已经不算宽裕。虽然目前没有公开的正式攻击能把这112位彻底击穿但密码学界对安全余量的要求水涨船高新系统的基准已经抬到128位以上。光凭这一点3DES就失去了新选用算法的资格。还有一个冷知识112位这个数字听起来和AES-128很接近但AES-128是128位完整有效强度加上设计上的高位冗余两者的安全余量有明显差距。更重要的是AES的硬件加速指令已经普及算法本身也不存在3DES那个“三轮串行”的性能问题。4.2 64位分组的生日碰撞边界如果说112位强度是“未来风险”那64位分组大小就是“现在就能算出来的现实风险”。DES处理的是64位分组3DES也是64位分组。根据生日悖论在块大小为n位的分组密码中加密约2^(n/2)个分组后就有可观概率出现两个相同明文的加密结果碰撞。对64位分组这个临界值是2^32个分组。算一下2^32个分组每个分组8字节一共是2^35字节也就是32GiB约34GB。这意味着什么在今天一个大数据平台的单日新增数据量达到几十GB很常见。如果你用3DES-CBC模式加密超过这个量级的数据碰撞风险就不再是理论值而是可计算的工程概率。生日碰撞本身不会直接泄露密钥但在某些模式下它会成为后续攻击的跳板属于“安全边界被突破”的警告信号。国际标准组织在2023年的过渡指南中已经明确把3DES从新加密应用里移除64位分组是重要原因之一。这是3DES真正退出历史舞台的最直接导火索。4.3 性能、生态与合规的弃用3DES的性能问题同样不可回避。它本质上是三次DES迭代软件实现里没有硬件加速比AES慢一个量级。我曾经见过老系统用3DES处理大批量文件加密CPU占用居高不下换成AES之后同样的吞吐量下CPU负载直接掉下去一大截。更现实的是生态压力今天的主流加密库、云厂商的托管加密服务、合规审计的算法清单里3DES的处境已经从“可用”变成“建议禁用”。很多行业规范已经明确要求新系统不再启用3DES旧系统给出迁移期限。这意味着就算你个人觉得它能跑合规这关也跑不过去。所以3DES的价值更多是历史性的它证明了算法结构的可复用性也证明了密钥长度和分组大小是决定算法寿命的两根支柱。它不是一个好的新选择但作为教材案例它提供的经验极其宝贵。5. 实操用Python和OpenSSL把DES与3DES跑起来5.1 最小加解密Python示例光讲理论不行亲手跑一遍才能把概念钉死。我用Python的pycryptodome库写一个最小示例分别演示DES和3DES的加解密。先安装依赖pip install pycryptodomeDES的ECB模式加解密from Crypto.Cipher import DES from Crypto.Util.Padding import pad, unpad # DES密钥必须是8字节其中有效密钥只有56位末尾8位是奇偶校验位 key b8bytekey cipher DES.new(key, DES.MODE_ECB) plaintext pad(bDES security demo, 8) # 分组算法必须对齐到8字节 ciphertext cipher.encrypt(plaintext) print(DES加密结果:, ciphertext.hex()) cipher2 DES.new(key, DES.MODE_ECB) decrypted unpad(cipher2.decrypt(ciphertext), 8) print(DES解密结果:, decrypted)3DES的CBC模式加解密from Crypto.Cipher import DES3 from Crypto.Util.Padding import pad, unpad from Crypto.Random import get_random_bytes # 三独立密钥24字节adjust_key_parity会自动修正每字节的奇偶校验位 key DES3.adjust_key_parity(get_random_bytes(24)) iv get_random_bytes(8) cipher DES3.new(key, DES3.MODE_CBC, iviv) plaintext pad(b3DES security demo, 8) ciphertext cipher.encrypt(plaintext) print(3DES-CBC加密结果:, ciphertext.hex()) cipher2 DES3.new(key, DES3.MODE_CBC, iviv) decrypted unpad(cipher2.decrypt(ciphertext), 8) print(3DES-CBC解密结果:, decrypted)注意这两个小细节第一3DES的CBC模式IV长度也是8字节第二解密时必须使用相同的IV否则第一组明文的还原会出错。实际工程里IV通常随密文一起存储或传输但永远不要用同一个IV加密多份不同数据。5.2 命令行快速验证如果你不想写代码用OpenSSL命令行也能快速验证。单重DES-CBC加密openssl enc -des-cbc -K 3132333435363738 -iv 0001020304050607 \ -in plain.txt -out des.bin3DES-EDE-CBC加密密钥长度为24字节即48个hex字符openssl enc -des-ede3-cbc \ -K 010203040506070801020304050607080102030405060708 \ -iv 0001020304050607 \ -in plain.txt -out des3.bin参数说明-K密钥的hex编码DES是16个hex字符3DES是48个hex字符。-iv初始向量的hex编码固定8字节。-in和-out明文输入和密文输出。解密只需要把 -d 参数加上。这里提醒一句OpenSSL 3.x对3DES支持是保留了但如果你在某个发行版本里遇到“算法不可用”的提示先去查一下加密provider的配置别以为是密钥写错了。5.3 密钥生成的细节与兼容性坑DES系密钥最容易被忽略的坑就是奇偶校验位。DES的每个字节有8位但真正参与密钥编排的只有前7位第8位是奇偶校验位理论上需要保证“每字节中1的个数为奇数”。很多工具库在接收密钥时会校验这个位如果你用了错误的奇偶校验位轻则直接报错重则在跨平台互操作时解密失败。用pycryptodome生成3DES密钥时DES3.adjust_key_parity会自动修正校验位。但是如果你在别的语言或工具里手工拼了一个24字节的随机数记得自己写一个修正逻辑或者用语言标准库提供的DES密钥生成接口。另一个坑是兼容模式。前面说过K1 K2 K3会让3DES退化成单重DES这在协议回退场合适用但在安全配置里却是大忌。我曾经遇到过一个案例对方声称用了3DES实际上三个密钥段全部相同等于还在用单重DES。大家在自查密钥配置时一定要把三段密钥打印出来比对一下确认它们确实是独立生成的。6. 常见问题与遗留系统迁移排查清单6.1 四个高频问题速答问题答案DES密钥为什么是8字节却只有56位有效每字节最后一位是奇偶校验位8字节共8位校验位实际参与加密的只有56位3DES能直接用16字节密钥吗可以这对应K1K3的选项二但建议新系统用24字节三独立密钥别省那8字节3DES的EDE模式中间用解密会降低安全性吗不会。加解密操作互相抵消安全性由三层密钥共同决定生产环境还能继续用DES或3DES吗新系统绝对不要用遗留系统需要评估数据量和合规要求尽快制定迁移计划6.2 迁移检查清单如果你正在维护一套还在用DES或3DES的老系统给你一份可以直接照着做的检查清单先盘点搜索代码库里所有传密钥的加密调用把算法名、密钥长度、使用模式ECB/CBC等全部列出来。ECB模式尤其要警惕它本身还有明文模式泄露问题趁迁移一起处理掉。再评估判断数据敏感度和加密数据量。如果数据量超过32GB已经撞上3DES的分组碰撞边界属于高优先级整改对象。然后选目标算法默认优先AES-256-GCM既能加密又带认证还能避免单独做MAC的常见错误。设计兼容过渡如果上下游系统都在同一套协议里先协商好切换时间窗口采用双算法并行灰度切换。最后回归测试加解密后的数据做逐字节比对确保历史存量密文能解密、新密文能被老版本正确识别避免出现“系统升完级历史数据全读不出来”的惨案。迁移最大的坑不在算法本身而在数据格式。AES和3DES的分组大小都是64位但AES是128位分组同样条件下padding规则、IV长度、密文长度全都不一样。很多系统在切换后才暴露出长度不兼容的问题所以迁移前务必把数据格式的兼容性验证放进测试用例里。7. 写在最后它是被成本淘汰不是被笨淘汰我个人这两年跟遗留系统打交道的最大感受是DES的整个生命周期特别像一场关于“成本”的漫长博弈。DES的结构设计足够聪明聪明到数学分析都啃不动它但它输给了最简单的穷举因为计算成本一路暴跌。3DES试图用三次运算把成本重新抬高也确实续了二十多年命但64位分组的时代局限最终还是让它出局。这段历史真正值得记住的不是“DES不安全”这个结论而是“算法选型必须前置考虑密钥长度、分组大小和可替换性”。如果你现在设计一个新的加密方案把这三个问题想清楚了大概率能避开DES和3DES走过的弯路。密码算法从来不是选一个最强的就完事而是要跟着威胁模型、数据规模和合规节奏不断做加减法。这大概就是DES和3DES留给我们这批工程师最实际的遗产。

相关新闻

隐式类型转换导致索引失效终结:从字符串与数字比较的底层逻辑切入

隐式类型转换导致索引失效终结:从字符串与数字比较的底层逻辑切入

在 MySQL 与各类关系型数据库调优中,有一个让无数开发和 DBA 既熟悉又抓狂的经典翻车案例:开发同学信誓旦旦地说:“大喜姐,我明明在 phone(手机号)字段上建了二级索引,为什么一跑生产查询&#…

2026/10/15 2:15:17 阅读更多 →
从零开始做SRC白帽:挖漏洞拿赏金,这些法律红线千万不要踩

从零开始做SRC白帽:挖漏洞拿赏金,这些法律红线千万不要踩

从零开始做SRC白帽:挖漏洞拿赏金,这些法律红线千万不要踩 很多新手入坑网络安全,初衷都很简单:想学一门硬核技术、靠挖漏洞赚赏金、做合法合规的白帽黑客。 我从纯零基础入门白帽,从零了解SRC规则、练习漏洞挖掘、提交…

2026/10/15 2:14:17 阅读更多 →
5 步配好流放之路 Build:Path of Building 天赋树、伤害计算与装备词缀避坑指南

5 步配好流放之路 Build:Path of Building 天赋树、伤害计算与装备词缀避坑指南

5 步配好流放之路 Build:Path of Building 天赋树、伤害计算与装备词缀避坑指南 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding 站在天赋树前点下一颗节点&am…

2026/10/15 2:14:17 阅读更多 →

最新新闻

从零开发聚合9大视频网站的桌面App:技术选型与发布运营复盘

从零开发聚合9大视频网站的桌面App:技术选型与发布运营复盘

前阵子我在一个技术交流群里发了句感叹:“现在做桌面应用,是不是有点逆潮流?”结果有个朋友直接回我:“你做一个有用的桌面工具试试,用户在乎的是好不好用,又不是你用什么平台。”我当时不以为然&#xff0…

2026/10/15 2:47:27 阅读更多 →
FastAPI响应模型设计与优化实战

FastAPI响应模型设计与优化实战

1. FastAPI响应模型参数解析在FastAPI开发中,响应模型参数是构建API契约的重要组成部分。它们不仅定义了接口返回数据的结构和类型,还直接影响着API文档的自动生成和客户端的数据校验。作为使用FastAPI三年多的开发者,我发现很多团队对响应模…

2026/10/15 2:47:27 阅读更多 →
Lombok失效排查:IDE标红但编译通过的原因与解决

Lombok失效排查:IDE标红但编译通过的原因与解决

先记住这个场景:项目跑得好好的,代码里到处是Data、Getter、Setter,结果某一天打开 IDE,满屏“红波浪线”,提示找不到getXxx()、setXxx()方法。你第一反应是哪里写错了,可把代码翻来覆去看了好几遍&#xf…

2026/10/15 2:47:27 阅读更多 →
UE4纹理资产创建全流程:从PBR贴图到材质装配

UE4纹理资产创建全流程:从PBR贴图到材质装配

做项目的时候,美术最常跟我念叨的一句话就是“这材质还差一张好贴图”。在虚幻4(UE4)里,纹理资产是所有材质表现的基石,没有纹理,模型再精密也只是一块带着基础着色的素模。这几年不管是自己做Demo还是带项…

2026/10/15 2:47:27 阅读更多 →
从“应该学”到“正在做”:用AI陪练两周搭建微型知识图谱

从“应该学”到“正在做”:用AI陪练两周搭建微型知识图谱

我收藏过的知识图谱入门资料,少说也有七八篇,真正打开看完的,不超过两篇。“我应该学知识图谱”这个念头在我脑子里盘旋了大约两年,直到我换了个思路——把 AI 当成学习陪练,而不是搜索引擎、不是网课老师,…

2026/10/15 2:47:27 阅读更多 →
从源码编译GMSSL:国密算法支持与HTTPS链接调试实战

从源码编译GMSSL:国密算法支持与HTTPS链接调试实战

1. 从源码到动态库:为什么选择自己编译GMSSL很多人第一次接触国密算法开发时,第一反应是找现成的二进制包或者系统自带的包管理器直接安装。这个思路在大多数场景下没问题,但一旦涉及国密算法,情况就完全不一样了。GMSSL作为国内广…

2026/10/15 2:46:27 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/14 7:53:34 阅读更多 →