网易首页 > 网易号 > 正文 申请入驻

Rust周更日志藏了3个彩蛋:1个数据库方案被开发者抄了47遍

0
分享至


一份技术周更日志,阅读量不到200,评论区却有人在问"能直接抄吗"。

这不是什么网红项目,是开发者Vinecksie的个人进度记录。但里面埋的三件事——Postgres持久化方案、Argon2密码存储实战、ChaCha20流密码实现——恰好踩中了Rust社区今年最热的三个坑。

Postgres持久化:sqlx的"隐形门槛"

Vinecksie给RustPulse项目做的Postgres方案,核心是解决三个问题:schema怎么初始化、数据怎么灌进去、灌完怎么验证。听起来基础,但sqlx的编译时检查(compile-time checked queries)让这事变得微妙。

你写SQL的时候,sqlx会在编译期连上数据库验证语法。好处是跑起来不会炸,坏处是CI环境没数据库就编译不过。

他的解法是把schema初始化、ingestion pipeline、verification strategy拆成三个阶段文档化。社区里常见的做法是硬编码迁移脚本,或者干脆放弃编译时检查用运行时ORM。Vinecksie选了条中间路:保留sqlx的安全特性,但把数据库依赖隔离在开发环节。

有人在GitHub issue里贴了自己的实现,说"抄了47遍才跑通"。不是真抄了47次,是sqlx的错误提示太像俄罗斯套娃——一个类型不匹配能引出三层嵌套错误。

密码存储:Argon2的"参数地狱"


《Sealed in Rust》这本书的新章节讲身份系统,Argon2是重头戏。这是2015年密码哈希竞赛的冠军,现在已经是OWASP推荐的标准。

但用对和能用是两回事。Argon2有三个变体:Argon2d防GPU破解、Argon2i防侧信道、Argon2id两者兼顾。选哪个?内存设多大?迭代次数多少?

Vinecksie的文档里列了组数字:内存成本65536 KB(64MB),时间成本3次迭代,并行度4线程。这组参数在2023年的普通笔记本上跑完一次哈希约80毫秒,攻击者用RTX 4090暴力破解的成本会指数级上升。

参数不是越大越好。内存设太高,低端服务器直接OOM;迭代次数太多,用户登录等3秒就想骂娘。

他花了相当篇幅讲"参数退化"——当硬件迭代时,怎么平滑升级已有用户的密码哈希。这事很多系统没做,结果要么永远锁死旧参数,要么强制用户重设密码。

ChaCha20:nonce重用=裸奔

新视频讲ChaCha20,25分钟里有一半时间在警告nonce(number used once,只使用一次的数字)。流密码的本质是用密钥生成伪随机流,再跟明文异或。同一个nonce+密钥组合,生成的流完全一样。

2019年有人分析过,TLS 1.3之前的大规模流量中,约0.02%的ChaCha20实现存在nonce重用。比例看着小,但放到现在全球流量规模里,足够解密海量历史数据。


Vinecksie的Rust实现用了两种防护:随机nonce(12字节,碰撞概率可忽略)和计数器nonce(严格递增,适合有状态的连接)。代码里加了debug_assert!检查nonce是否全零——这是历史上多个实现踩过的坑,开发者复制粘贴示例代码时忘了改。

视频评论区有个细节:有人问"为什么不用AES-GCM",Vinecksie回复「ChaCha20在纯软件实现上快30%,且没有AES-NI指令集的CPU上差距更大」。这是2014年Google推ChaCha20-Poly1305时的原始动机,现在成了移动端和WASM环境的默认选择。

三件事的共同点

Postgres持久化、Argon2参数调优、ChaCha20 nonce管理——表面不相关,底层是同一个问题:Rust的安全承诺需要开发者填对最后一公里的坑。

编译器能拦住空指针和内存泄漏,但拦不住sqlx的数据库连接配置、Argon2的参数选择、ChaCha20的nonce生成策略。这些决策点散落在文档、RFC、论文里,没有cargo clippy能自动提示。

Vinecksie的周更日志价值就在这里:不是造新轮子,是把"怎么填坑"的过程显性化。RustPulse的文档结构、Sealed in Rust的参数表格、Fearless in Rust的nonce检查代码,都是可直接迁移的模板。

那个说"抄了47遍"的开发者后来补了句:第48遍时终于理解了为什么要那样设计。这大概是技术文档最好的评价——先让人跑起来,再让人想明白。

你最近抄过谁的代码?抄完之后,是更懂了还是更懵了?

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
医生告诫:每天睡前玩手机的人,不用半年时间,睡眠或有这6变化

医生告诫:每天睡前玩手机的人,不用半年时间,睡眠或有这6变化

岐黄传人孙大夫
2026-03-24 23:55:03
他从福建小混混,逆袭为柬埔寨首富,骗走了国人1000亿血汗钱

他从福建小混混,逆袭为柬埔寨首富,骗走了国人1000亿血汗钱

吃瓜局
2025-10-17 14:35:16
太可怜了!2張照片,几乎就是张雪峰人生的最後定格

太可怜了!2張照片,几乎就是张雪峰人生的最後定格

魔都姐姐杂谈
2026-03-28 04:04:21
心脏决定寿命!建议:别太节俭,多吃这3种食物,让心脏变年轻

心脏决定寿命!建议:别太节俭,多吃这3种食物,让心脏变年轻

阿龙美食记
2026-03-23 20:16:13
笑麻了!新手爸爸们的离谱行为,老婆要生了,结果人还在家

笑麻了!新手爸爸们的离谱行为,老婆要生了,结果人还在家

夜深爱杂谈
2026-03-28 20:00:23
天津限号有变!

天津限号有变!

天津族
2026-03-28 17:34:05
男子让女友跟朋友缠绵,女友告朋友强奸,2011年俩哥们打架死1个

男子让女友跟朋友缠绵,女友告朋友强奸,2011年俩哥们打架死1个

汉史趣闻
2026-03-28 16:42:18
4-2,打爆日本张本美和,王曼昱强势复出,蒯曼陈幸同出战世乒赛

4-2,打爆日本张本美和,王曼昱强势复出,蒯曼陈幸同出战世乒赛

冷桂零落
2026-03-28 15:36:03
苏联军事巅峰有多强?“81军演”直接邀请北约参观,吓坏西欧各国

苏联军事巅峰有多强?“81军演”直接邀请北约参观,吓坏西欧各国

微野谈写作
2026-03-28 08:25:06
“火烈鸟”导弹击中俄最大炸药厂!乌克兰小朋友和上海老人的对话

“火烈鸟”导弹击中俄最大炸药厂!乌克兰小朋友和上海老人的对话

鹰眼Defence
2026-03-28 17:53:46
富人圈子里选儿媳铁律:美貌和文凭都是浮云,这3个品质缺一不可

富人圈子里选儿媳铁律:美貌和文凭都是浮云,这3个品质缺一不可

千秋文化
2026-02-15 20:12:48
24小时局势突变!伊朗刚刚制定停战条件,美国就空袭伊朗核设施!

24小时局势突变!伊朗刚刚制定停战条件,美国就空袭伊朗核设施!

兴史兴谈
2026-03-29 00:03:49
伊朗用导弹拼出尊严,中国导弹实力藏不住了,俄专家给出硬核定论

伊朗用导弹拼出尊严,中国导弹实力藏不住了,俄专家给出硬核定论

探源历史
2026-03-25 13:22:35
大反转!今天抵达无锡

大反转!今天抵达无锡

江南晚报
2026-03-29 03:33:06
面相真骗不了人,李亚鹏停播一个半月,复出还是卖他的高端茶叶。

面相真骗不了人,李亚鹏停播一个半月,复出还是卖他的高端茶叶。

小光侃娱乐
2026-03-26 18:10:03
2小时闭门激战!心腹当场倒戈?马英九急撤杀招,蓝营内斗迎3结局

2小时闭门激战!心腹当场倒戈?马英九急撤杀招,蓝营内斗迎3结局

悄悄史话
2026-03-29 04:43:57
杭州一女子“断碳水”2个月暴瘦30斤,每天只吃少量蔬菜和鸡胸肉,出现头晕心慌,确诊糖尿病前期

杭州一女子“断碳水”2个月暴瘦30斤,每天只吃少量蔬菜和鸡胸肉,出现头晕心慌,确诊糖尿病前期

大象新闻
2026-03-28 19:45:02
飙升570%!河南一酒企断代16年后复出,搅动1800亿市场

飙升570%!河南一酒企断代16年后复出,搅动1800亿市场

叮当当科技
2026-03-27 05:47:01
周六你需要知道的隔夜全球要闻:中东局势不确定性再度推高油价,美油飙升超5%,美股抛售加剧,金价反弹

周六你需要知道的隔夜全球要闻:中东局势不确定性再度推高油价,美油飙升超5%,美股抛售加剧,金价反弹

财联社
2026-03-28 06:28:11
黑丝诱惑的性商教母,复出直播了!

黑丝诱惑的性商教母,复出直播了!

微微热评
2026-03-27 00:57:03
2026-03-29 06:55:00
我是一个养虾人
我是一个养虾人
有态度网友ytd
352文章数 1关注度
往期回顾 全部

科技要闻

华为盘古大模型负责人王云鹤确认离职

头条要闻

美媒:和欧盟"外长"发生激烈交锋 鲁比奥"显然很恼火"

头条要闻

美媒:和欧盟"外长"发生激烈交锋 鲁比奥"显然很恼火"

体育要闻

“我是全家最差劲的运动员”

娱乐要闻

陈牧驰陈冰官宣得子 晒一家三口握拳照

财经要闻

卧底"科技与狠活"培训:化工调味剂泛滥

汽车要闻

置换补贴价4.28万起 第五代宏光MINIEV正式上市

态度原创

教育
亲子
艺术
本地
公开课

教育要闻

“女孩家长心真大!”小男孩带女同学回家留宿,网友破防了!

亲子要闻

小孩子能口无遮拦到什么程度!网友:恨不得当场找个地缝钻进去

艺术要闻

毛泽东手笺惊现美国拍卖会,满纸峥嵘往事......

本地新闻

在潍坊待了三天,没遇到一个“潍坊人”

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版