md5 如何像 crc32 实现雪崩效应的

2021-09-23 16:43:52 +08:00
 quxinna
crc32 雪崩问题我有一些进展,https://github.com/221294583/crc32 说是 crc32 通过多项式和原始值同时进行的递归异或实现雪崩,我想 md5 也是如此,但我看不懂 md5 的代码,有谁帮我一下解释这段代码。https://github.com/blueimp/JavaScript-MD5
1882 次点击
所在节点    程序员
5 条回复
hxndg
2021-09-23 20:43:42 +08:00
压缩函数和移位来实现雪崩,具体不记得了。
2i2Re2PLMaDnghL
2021-09-24 21:58:26 +08:00
你找的这个项目为了优化把循环 64 遍的部分直接写成 64 条语句了……

你还是先看 wiki 上面的图片和伪代码吧,非线性映射和异或移位
quxinna
2021-10-18 15:40:30 +08:00
@2i2Re2PLMaDnghL 你说的应该还是递归吧? blueimp javascript md5 在 win2000 下不工作,问了一个俄罗斯朋友,说是调用的 md5,不是自己实现的 md5,不过 crc32 肯定没问题
2i2Re2PLMaDnghL
2021-10-18 22:17:44 +08:00
@quxinna 我不知道你说的递归是指?是针对输入字节流的每一块作相同处理吗?那是这样的,不然还能咋样?递归不是雪崩效应的主要原因,fmap x=>x+1 也是递归。
显然不是调用的 md5,不然写那么多魔数干什么。而且 JS 虚拟机语言调用外部操作明显得一塌糊涂。
要看 js 引擎的,跟操作系统没什么关系 —— 还是说你用的是 WScript ?那没救了,你还是自己逆向迁移吧
我不知道说你什么好,建议重新学起从 SICP 开始看。
quxinna
2022-02-27 06:57:37 +08:00
我研究了一下,md5 和 crc32 是依赖 Gmail 包的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/803688

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX