作为信息摘要算法,SHA与MD5计算过程非常相似,这里记录一下其异同:
1 模数不同:
MD5 4个64bit初始化常量 64个K
SHA1 5个64bit初始化常量 4个K
SHA256 8个64bit初始化常量 80个K
SHA512 8个128bit初始化常量 80个K
2 分组及分组拓展和分组分段
MD5 512bit分为16段每段32bit 无需拓展
SHA1 512bit分为16段每段32bit 拓展成64段
SHA256 512bit分为16段每段32bit 拓展成64段
SHA512 1024bit分为16段每段64bit 拓展成64段
3 轮函数(每段一轮,此外MD5还会重复4轮)
4 输出摘要
MD5 转为大端字节序然后拼接得到16字节输出
SHA1 拼接得到20字节输出
SHA256 拼接得到32字节输出
SHA512 拼接得到64字节输出
如下8个模数