Archive for October, 2014

有关hash的胡言乱语

连续两天看了Hash相关的内容。包括hashcode,md5,sha-1,crc32,hmac,hmac-sha,以及java的hashmap实现过程。并尝试自己实现MD5,最终发现如果不参考已有的代码,还是很困难。 MD5: 无论原文多长,或者文件多大,生成的摘要信息永远都是128-bit。通过对实现过程的观察和研究,简单描述md5的实现过程: 将原文或源文件转换为bit数组,先进行补位.补位的目的是为了让整个bit数组的长度对512取莫,余448.(The message is “padded” (extended) so that its length (in bits) is congruent to 448, modulo 512. ),具体补位的规则则是按1 0 …0的方式来补。这是第一步补位。 依然补位,讲原数据的bit数组的长度补位到bit数组中。当然数组的长度本身就是个变量,具体padding的规则: A 64-bit representation of b (the length of the message before the padding bits were added) is appended to the result of the previous step. In the unlikely event that b […]

Read More…