借助链接的背景知识外加逆鳞的讲解,邹道对加密算法和md5有了一个大体的认识:md5算法可简述为“以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值”。严格来说,md5不能算是加密算法,只能说是摘要算法。在md5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448。因此,信息的字节长度(bitslength)将被扩展至n*512+448,即n*64+56个字节(bytes),n为一个正整数。填充的方法如是在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,最终的信息字节长度=n*512+448+64=n+1*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。
邹道所看到的那个文本“md5doc=37b8c2c1093dd0fec281a9d9ac840513”,就是md5在实际操作中的典型应用,即对一段信息(message)产生信息摘要(message-digest),以防止被篡改。
上述文本这就是doc文件的数字签名。md5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的md5信息摘要。
第九十章 红与黑的碰撞·迷雾 10(1/2),点击下一页继续阅读