V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
quxinna
V2EX  ›  程序员

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

  •  
  •   quxinna ·
    quxinna · 2021-09-23 16:43:52 +08:00 · 1886 次点击
    这是一个创建于 1168 天前的主题,其中的信息可能已经有所发展或是发生改变。
    crc32 雪崩问题我有一些进展,https://github.com/221294583/crc32 说是 crc32 通过多项式和原始值同时进行的递归异或实现雪崩,我想 md5 也是如此,但我看不懂 md5 的代码,有谁帮我一下解释这段代码。https://github.com/blueimp/JavaScript-MD5
    5 条回复    2022-02-27 06:57:37 +08:00
    hxndg
        1
    hxndg  
       2021-09-23 20:43:42 +08:00
    压缩函数和移位来实现雪崩,具体不记得了。
    2i2Re2PLMaDnghL
        2
    2i2Re2PLMaDnghL  
       2021-09-24 21:58:26 +08:00
    你找的这个项目为了优化把循环 64 遍的部分直接写成 64 条语句了……

    你还是先看 wiki 上面的图片和伪代码吧,非线性映射和异或移位
    quxinna
        3
    quxinna  
    OP
       2021-10-18 15:40:30 +08:00
    @2i2Re2PLMaDnghL 你说的应该还是递归吧? blueimp javascript md5 在 win2000 下不工作,问了一个俄罗斯朋友,说是调用的 md5,不是自己实现的 md5,不过 crc32 肯定没问题
    2i2Re2PLMaDnghL
        4
    2i2Re2PLMaDnghL  
       2021-10-18 22:17:44 +08:00
    @quxinna 我不知道你说的递归是指?是针对输入字节流的每一块作相同处理吗?那是这样的,不然还能咋样?递归不是雪崩效应的主要原因,fmap x=>x+1 也是递归。
    显然不是调用的 md5,不然写那么多魔数干什么。而且 JS 虚拟机语言调用外部操作明显得一塌糊涂。
    要看 js 引擎的,跟操作系统没什么关系 —— 还是说你用的是 WScript ?那没救了,你还是自己逆向迁移吧
    我不知道说你什么好,建议重新学起从 SICP 开始看。
    quxinna
        5
    quxinna  
    OP
       2022-02-27 06:57:37 +08:00
    我研究了一下,md5 和 crc32 是依赖 Gmail 包的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1136 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:50 · PVG 02:50 · LAX 10:50 · JFK 13:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.