AI 已从橡皮鸭和代码片段来源演变为能干的编程助手。把问题写下来能澄清思路,AI 也能帮助克服导致拖延的小知识缺口。初级开发者应在卡住时才使用它,因为挣扎才能建立理解;资深开发者更能判断其输出。公司可能更青睐资深开发者,因为 AI 已能处理初级执行工作。代码不重构仍会腐化;使用不当,AI 会加速混乱。它在小步推进时效果最佳,也可能过度生成或增加不必要的抽象。随着代码更容易产生,系统设计、边界和耦合变得更重要。好习惯包括增量修改、清晰的简洁性约束、强测试、用于调试的日志、markdown 笔记、主动简化以及确保个人理解。速度便宜,但优质软件仍需谨慎与理解。
多种 PDF 工具使用弱随机性生成 AES-256 文件密钥。MuPDF 1.28.5 之前用 Unix 时间戳作为 drand48 的种子,仅留下九个有效比特;攻击者可暴力破解 512 个候选密钥,并使用 /ID 进行校验。Foxit 将密钥派生为 32 位时间戳、32 个零字节和 "there" 的 SHA-256;/Perms 已知明文允许快速验证,且时间戳可被快速搜索。OpenPDF 和 iText 用毫秒时间戳加上 JVM 空闲内存来种子化 ARC4,明文盐值让攻击者可验证猜测。因此,尽管密码哈希较慢,AES-256 保护仍可被绕过。厂商已收到通知;MuPDF 已修复该问题,但此前加密的 PDF 可能仍然脆弱。MuPDF 和 Foxit 的解密器已发布。