基本流程
填充padding
在长度为Kbits 的原始消息数据尾部填充长度为Pbits 的标识 100…0,1填充1个bit),使得填充后的消息位 数为:K + P=...压缩函数
每轮循环中的一次迭代运算逻辑
对A迭代:a <— b+ ((a+ g(b, c, d) + X[k] + T[i]) <<<s)
缓冲区(A, B, C, D) 作循环轮换: (B, C,...//每次取512bit
//处理一个分组
H(divide(inputBytes, i*64));
}
分组函数
这个函数传入的参数是一个字节数组...用了两层循环
第一层表示四轮循环
第二层表示16轮迭代
中间按照缓冲区运算的要求处理数据
这里直接处理的是result数组,也就是真实的缓冲区,所以在开始暂存了它们当时的值为a,b,c,d
运算完毕后要加上这些值...static final int S[][] 各次迭代中采用的做循环移位的s值
private static long g(int i, long b, long c, long d) 4轮循环中使用的生成函数