【正文】
en 32bit words into eighty 32bit words:) for i from 16 to 79: w(i) = (w(i3) xor w(i8) xor w(i14) xor w(i16)) leftrotate 1 (Main loop:) for i from 0 to 79: temp = (a leftrotate 5) + f(b,c,d) + e + k + w(i) (note: all addition is mod 2^32) where: (0 = i = 19): f(b,c,d) = (b and c) or ((not b) and d), k = 0x5A827999 (20 = i = 39): f(b,c,d) = (b xor c xor d), k = 0x6ED9EBA1 (40 = i = 59): f(b,c,d) = (b and c) or (b and d) or (c and d), k = 0x8F1BBCDC (60 = i = 79): f(b,c,d) = (b xor c xor d), k = 0xCA62C1D6 e = d d = c c = b leftrotate 30 b = a a = temp h0 = h0 + a h1 = h1 + b h2 = h2 + c h3 = h3 + d h4 = h4 + e digest = hash = h0 append h1 append h2 append h3 append h4 注意:FIPS PUB 1801 展示的構(gòu)想,用以下的公式替代可以增進(jìn)效能: (0 = i = 19): f(b,c,d) = (d xor (