S11 = 7, S12 = 12, S13 = 17, S14 = 22 S21 = 5, S22 = 9, S23 = 14, S24 = 20 S31 = 4, S32 = 11, S33 = 16, S34 = 23 S41 = 6, S42 = 10, S43 = 15, S44 = 21 [] PADDING =-128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 00, 0, 0, 0, 0, 0, 0 [] state = [4]; [] buffer = [64]; [] count = [2]; [] digest = [16 md5Update(in.getBytes(), in.length()); md5Final(); ( i = 0; i < 16; i+++= byteToHEX(digest[i]); 0] = 0x67452301L; state[1] = 0xefcdab89L; state[2] = 0x98badcfeL; state[3] = 0x10325476L; count[0] = count[1] = 0L; resultStr = ""; ( i = 0; i < 16; i++= 0; F( x, y, (x & y) | ((~x) & G( x, y, (x & z) | (y & (~ H( x, y, x ^ y ^ I( x, y, y ^ (x | (~ FF( a, b, c, d, x, s, += F(b, c, d) + x += (() a << s) | (() a >>> (32 - s)); a += GG( a, b, c, d, x, s, += G(b, c, d) + x += (() a << s) | (() a >>> (32 - s)); a += HH( a, b, c, d, x, s, += H(b, c, d) + x += (() a << s) | (() a >>> (32 - s)); a += II( a, b, c, d, x, s, += I(b, c, d) + x += (() a << s) | (() a >>> (32 - s)); a += md5Update([] input, [] block = [64]; index = () (count[0] >>> 3) & 0x3F ((count[0] += (inputLen << 3)) < (inputLen << 31]++1] += (inputLen >>> 29); partLen = 64 - index; (inputLen >=0 (i = partLen; i + 63 < inputLen; i += 640, i, 64= 0= 0- [] bits = [88= () (count[0] >>> 3) & 0x3f; padLen = (index < 56) ? (56 - index) : (120 -816 md5Memcpy([] output, [] input, outpos, (i = 0; i < len; i+++ i] = input[inpos + md5Transform( a = state[0], b = state[1], c = state[2], d = state[3[] x = [1664 a = FF(a, b, c, d, x[0], S11, 0xd76aa478L); = FF(d, a, b, c, x[1], S12, 0xe8c7b756L); = FF(c, d, a, b, x[2], S13, 0x242070dbL); = FF(b, c, d, a, x[3], S14, 0xc1bdceeeL); = FF(a, b, c, d, x[4], S11, 0xf57c0fafL); = FF(d, a, b, c, x[5], S12, 0x4787c62aL); = FF(c, d, a, b, x[6], S13, 0xa8304613L); = FF(b, c, d, a, x[7], S14, 0xfd469501L); = FF(a, b, c, d, x[8], S11, 0x698098d8L); = FF(d, a, b, c, x[9], S12, 0x8b44f7afL); = FF(c, d, a, b, x[10], S13, 0xffff5bb1L); = FF(b, c, d, a, x[11], S14, 0x895cd7beL); = FF(a, b, c, d, x[12], S11, 0x6b901122L); = FF(d, a, b, c, x[13], S12, 0xfd987193L); = FF(c, d, a, b, x[14], S13, 0xa679438eL); = FF(b, c, d, a, x[15], S14, 0x49b40821L); a = GG(a, b, c, d, x[1], S21, 0xf61e2562L); = GG(d, a, b, c, x[6], S22, 0xc040b340L); = GG(c, d, a, b, x[11], S23, 0x265e5a51L); = GG(b, c, d, a, x[0], S24, 0xe9b6c7aaL); = GG(a, b, c, d, x[5], S21, 0xd62f105dL); = GG(d, a, b, c, x[10], S22, 0x2441453L); = GG(c, d, a, b, x[15], S23, 0xd8a1e681L); = GG(b, c, d, a, x[4], S24, 0xe7d3fbc8L); = GG(a, b, c, d, x[9], S21, 0x21e1cde6L); = GG(d, a, b, c, x[14], S22, 0xc33707d6L); = GG(c, d, a, b, x[3], S23, 0xf4d50d87L); = GG(b, c, d, a, x[8], S24, 0x455a14edL); = GG(a, b, c, d, x[13], S21, 0xa9e3e905L); = GG(d, a, b, c, x[2], S22, 0xfcefa3f8L); = GG(c, d, a, b, x[7], S23, 0x676f02d9L); = GG(b, c, d, a, x[12], S24, 0x8d2a4c8aL); a = HH(a, b, c, d, x[5], S31, 0xfffa3942L); = HH(d, a, b, c, x[8], S32, 0x8771f681L); = HH(c, d, a, b, x[11], S33, 0x6d9d6122L); = HH(b, c, d, a, x[14], S34, 0xfde5380cL); = HH(a, b, c, d, x[1], S31, 0xa4beea44L); = HH(d, a, b, c, x[4], S32, 0x4bdecfa9L); = HH(c, d, a, b, x[7], S33, 0xf6bb4b60L); = HH(b, c, d, a, x[10], S34, 0xbebfbc70L); = HH(a, b, c, d, x[13], S31, 0x289b7ec6L); = HH(d, a, b, c, x[0], S32, 0xeaa127faL); = HH(c, d, a, b, x[3], S33, 0xd4ef3085L); = HH(b, c, d, a, x[6], S34, 0x4881d05L); = HH(a, b, c, d, x[9], S31, 0xd9d4d039L); = HH(d, a, b, c, x[12], S32, 0xe6db99e5L); = HH(c, d, a, b, x[15], S33, 0x1fa27cf8L); = HH(b, c, d, a, x[2], S34, 0xc4ac5665L); a = II(a, b, c, d, x[0], S41, 0xf4292244L); = II(d, a, b, c, x[7], S42, 0x432aff97L); = II(c, d, a, b, x[14], S43, 0xab9423a7L); = II(b, c, d, a, x[5], S44, 0xfc93a039L); = II(a, b, c, d, x[12], S41, 0x655b59c3L); = II(d, a, b, c, x[3], S42, 0x8f0ccc92L); = II(c, d, a, b, x[10], S43, 0xffeff47dL); = II(b, c, d, a, x[1], S44, 0x85845dd1L); = II(a, b, c, d, x[8], S41, 0x6fa87e4fL); = II(d, a, b, c, x[15], S42, 0xfe2ce6e0L); = II(c, d, a, b, x[6], S43, 0xa3014314L); = II(b, c, d, a, x[13], S44, 0x4e0811a1L); = II(a, b, c, d, x[4], S41, 0xf7537e82L); = II(d, a, b, c, x[11], S42, 0xbd3af235L); = II(c, d, a, b, x[2], S43, 0x2ad7d2bbL); = II(b, c, d, a, x[9], S44, 0xeb86d391L); state[0] +=1] +=2] +=3] += byteToul( b > 0 ? b : (b & 0x7F + 128 String byteToHEX([] DigitStr ='0', '1', '2', '3', '4', '5', '6', '7', '8', '9''A', 'B', 'C', 'D', 'E', 'F'[] out = [20] = DigitStr[(in >> 4) & 0x0F]; out[1] = DigitStr[in & 0x0F]; String s = Encode([] output, [] input, (i = 0, j = 0; j < len; i++, j += 4= () (input[i] & 0xffL+ 1] = () ((input[i] >>> 8) & 0xffL+ 2] = () ((input[i] >>> 16) & 0xffL+ 3] = () ((input[i] >>> 24) & 0xffL Decode([] output, [] input, (i = 0, j = 0; j < len; i++, j += 4=| (byteToul(input[j + 1]) << 8| (byteToul(input[j + 2]) << 16| (byteToul(input[j + 3]) << 24