This article mainly introduces the implementation of jquery development MD5 Plug-ins, the last return is a series of decimal number, in the jquery1.9.2 test pass, the need for friends can refer to the following
The method returns a string of decimal digits, which is tested under jquery1.9.2. Code as follows: (function ($) { $.md5 = function (o) { if (null = = O) { return ' null '; } if (typeof o!= "string") { return ' null '; } //Calculate the length of the fill var fill_data_len = 0; var data_len = o.length; var d_l_mod = data_len% Md5_base_len; if (0!= d_l_mod) fill_data_len = Md5_base_len-d_l_mod; if (Fill_data_len < 8) fill_data_len + = Md5_base_len; var buf = new Array (Data_len + Fill_data_len); for (var i = 0;i < data_len;i++) buf[i] = o.charcodeat (i); var Msg_bit_len = Data_len * Byte_bit_len Buf[data_len] = First_fill_byte; for (var i = 0;i < 4;i++) { buf[data_len + fill_data_len-8 + i] = (msg_bit_len ; (0X000000FF << (i * 8))) >> (i * 8)); } var md5_c = [Md5_a,md5_b,md5_c,md5_d]; VAR md5_Code = [Md5_a,md5_b,md5_c,md5_d]; for (var m = 0;m < Data_len + fill_data_len;m + +) { var buf_p = new Array; for (v Ar i = 0;i < 16;i++) { buf_p[i] = 0 for (var j = 0;j < 4;j++) { buf_ P[i] <<= 8; buf_p[i] |= buf[m + j + i * 4]; } &NBSP} for (var k = 0;k < 16;k + 4) { md5_c[0] = FF (md5_c[0],md5_c[1 ],MD5_C[2], md5_c[3],buf_p[k],7,md5_ti[k]); MD5_C[3] = FF (md5_c[3],md5_c[0],md5_c[1], Md5_c[2],buf_p[k + 1],12, &NBSP ; Md5_ti[k + 1]); MD5_C[2] = FF (md5_c[2],md5_c[3],md5_c[0], Md5_c[1],buf_p[k + 2],17, &NBSP ; Md5_ti[k + 2]); MD5_C[1] = FF (md5_c[1],md5_c[2],md5_c[3], Md5_c[0],buf_p[k + 3],22, &NBSP ; Md5_ti[k + 3]); &NBSP} md5_c[0] = GG (MD5_C[0],MD5_C[1],MD5_C[2],MD5_C[3], buf_p[1],5,md5_ti[16]); md5_c[3] = GG (md5_c[3],md5_c[0],md5_c[1],md5_c[2], buf_p[6],9,md5_ti[17]); md5_c[2] = GG (md5_c[2],md5_c[3],md5_c[0],md5_c[1], buf_p[11],14,md5_ti[18]); md5_c[1] = GG (md5_c[1],md5_c[2],md5_c[3],md5_c[0], buf_p[0],20,md5_ti[19]); md5_c[0] = GG (md5_c[0],md5_c[1],md5_c[2],md5_c[3], BUF_P[5],5,MD5_TI[20]); md5_c[3] = GG (md5_c[3],md5_c[0],md5_c[1],md5_c[2], buf_p[10],9,md5_ti[21]); md5_c[2] = GG (md5_c[2],md5_c[3],md5_c[0],md5_c[1], buf_p[15],14,md5_ti[22]); md5_c[1] = GG (md5_c[1],md5_c[2],md5_c[3],md5_c[0], buf_p[4],20,md5_ti[23]); md5_c[0] = GG (md5_c[0],md5_c[1],md5_c[2],md5_c[3], buf_p[9],5,md5_ti[24]); md5_c[3] = GG (MD5_C[3],MD5_C[0],MD5_C[1],MD5_C[2], buf_p[14],9,md5_ti[25]); md5_c[2] = GG (md5_c[2],md5_c[3],md5_c[0],md5_c[1], buf_p[3],14,md5_ti[26]); md5_c[1] = GG (md5_c[1],md5_c[2],md5_c[3],md5_c[0], buf_p[8],20,md5_ti[27]); md5_c[0] = GG (md5_c[0],md5_c[1],md5_c[2],md5_c[3], buf_p[13],5,md5_ti[28]); md5_c[3] = GG (md5_c[3],md5_c[0],md5_c[1],md5_c[2], buf_p[2],9,md5_ti[29]); md5_c[2] = GG (md5_c[2],md5_c[3],md5_c[0],md5_c[1], buf_p[7],14,md5_ti[30]); md5_c[1] = GG (md5_c[1],md5_c[2],md5_c[3],md5_c[0], buf_p[12],20,md5_ti[31]); md5_c[0] = HH (md5_c[0],md5_c[1],md5_c[2],md5_c[3], buf_p[5],4,md5_ti[32]); md5_c[3] = HH (md5_c[3],md5_c[0],md5_c[1],md5_c[2], buf_p[8],11,md5_ti[33]); &NBSP;MD5_C[2] = HH (Md5_c[2],md5_c[3],md5_c[0],md5_c[1], buf_p[11],16,md5_ti[34]); md5_c[1] = HH (md5_c[1],md5_c[2],md5_c[3],md5_c[0], buf_p[14],23,md5_ti[35]); md5_c[0] = HH (md5_c[0],md5_c[1],md5_c[2],md5_c[3], buf_p[1],4,md5_ti[36]); md5_c[3] = HH (md5_c[3],md5_c[0],md5_c[1],md5_c[2], buf_p[4],11,md5_ti[37]); md5_c[2] = HH (md5_c[2],md5_c[3],md5_c[0],md5_c[1], buf_p[7],16,md5_ti[38]); md5_c[1] = HH (md5_c[1],md5_c[2],md5_c[3],md5_c[0], buf_p[10],23,md5_ti[39]); md5_c[0] = HH (md5_c[0],md5_c[1],md5_c[2],md5_c[3], buf_p[13],4,md5_ti[40]); md5_c[3] = HH (md5_c[3],md5_c[0],md5_c[1],md5_c[2], buf_p[0],11,md5_ti[41]); md5_c[2] = HH (md5_c[2],md5_c[3],md5_c[0],md5_c[1], buf_p[3],16,md5_ti[42]); md5_c[1] = HH (md5_c[1],md5_c[2],md5_c[3],md5_c[0], buf_p[6],23,md5_ti[43]); md5_c[0] = HH (md5_c[0],md5_c[1],md5_c[2],md5_c[3], buf_p[9],4,md5_ti[44]); md5_c[3] = HH (md5_c[3],md5_c[0],md5_c[1],md5_c[2], buf_p[12],11,md5_ti[45]); md5_c[2] = HH (md5_c[2],md5_c[3],md5_c[0],md5_c[1], buf_p[15],16,md5_ti[46]); md5_c[1] = HH (md5_c[1],md5_c[2],md5_c[3],md5_c[0], buf_p[2],23,md5_ti[47]); md5_c[0] = II (md5_c[0],md5_c[1],md5_c[2],md5_c[3], buf_p[0],6,md5_ti[48]); md5_c[3] = II (md5_c[3],md5_c[0],md5_c[1],md5_c[2], buf_p[7],10,md5_ti[49]); md5_c[2] = II (md5_c[2],md5_c[3],md5_c[0],md5_c[1], BUF_P[14],15,MD5_TI[50]); md5_c[1] = II (md5_c[1],md5_c[2],md5_c[3],md5_c[0], buf_p[5],21,md5_ti[51]); md5_c[0] = II (md5_c[0],md5_c[1],md5_c[2],md5_c[3], buf_p[12],6,md5_ti[52]); md5_c[3] = II (md5_c[3],md5_c[0],md5_c[1],md5_c[2], buf_p[3],10,md5_ti[53]); md5_c[2] = II (md5_c[2],md5_c[3],md5_c[0],md5_c[1], buf_p[10],15,md5_ti[54]); md5_c[1] = II (md5_c[1],md5_c[2],md5_c[3],md5_c[0], buf_p[1],21,md5_ti[55]); md5_c[0] = II (md5_c[0],md5_c[1],md5_c[2],md5_c[3], buf_p[8],6,md5_ti[56]); md5_c[3] = II (md5_c[3],md5_c[0],md5_c[1],md5_c[2], buf_p[15],10,md5_ti[57]); md5_c[2] = II (md5_c[2],md5_c[3],md5_c[0],md5_c[1], buf_p[6],15,md5_ti[58]); md5_c[1] = II (md5_c[1],md5_c[2],md5_c[3],md5_c[0], buf_p[13],21,md5_ti[59]); md5_c[0] = II (md5_c[0],md5_c[1],md5_c[2],md5_c[3], buf_p[4],6,md5_ti[60]); &nBsp &NBSP;MD5_C[3] = II (md5_c[3],md5_c[0],md5_c[1],md5_c[2], buf_p[11],10,md5_ti[61]); md5_c[2] = II (md5_c[2],md5_c[3],md5_c[0],md5_c[1], buf_p[2],15,md5_ti[62]); md5_c[1] = II (md5_c[1],md5_c[2],md5_c[3],md5_c[0], buf_p[9],21,md5_ti[63]); for (var i = 0;i < 4;i++) { md5_code[i] + = Md5_c[i]; } for (v Ar i = 0;i < 4;i++) { md5_c[i] = md5_code[i]; } } var md5_code_str = "" + md5_code[0]; for (var i = 1;i < 4;i++) &NBSP;MD5_CODE_STR + = Md5_code[i]; return MD5_CODE_STR; }; } (JQuery)); function F (x,y,z) { return ((x) & (y)) | ((~ (x)) & (z)); } function G (x,y,z) { return ((x) & (z)) | ((y) & (~ (z))); } function H (x,y,z) { return ((x) ^ (y) ^ (z));} function I (x,y,z) { return (y) ^ ((x) | (~ (z)))); } function Bit_rol (d,n) { return ((d) << (n)) | (d) >> (C-(n))); } function FF (a,b,c,d,m,s,t) { return B + bit_rol ((A + F (b,c,d) + M + t), s);} function GG (a,b,c,d,m,s , t) { return B + bit_rol ((A + G (b,c,d) + M + t), s);} function HH (a,b,c,d,m,s,t) { return B + bit_rol ( A + H (b,c,d) + M + t), s); } function II (a,b,c,d,m,s,t) { return B + bit_rol ((A + I (b,c,d) + M + t), s);} var md5_ti = [ 0x D76aa478,0xe8c7b756,0x242070db,0xc1bdceee, 0xf57c0faf,0x4787c62a,0xa8304613,0xfd469501, 0x698098d8, 0x8b44f7af,0xffff5bb1,0x895cd7be, 0x6b901122,0xfd987193,0xa679438e,0x49b40821, 0xf61e2562,0xc040b340 , 0X265E5A51,0XE9B6C7AA, 0xd62f105d,0x02441453,0xd8a1e681,0xe7d3fbc8, 0x21e1cde6,0xc33707d6, 0xf4d50d87,0x455a14ed, 0xa9e3e905,0xfcefa3f8,0x676f02d9,0x8d2a4c8a, 0xfffa3942,0x8771f681,0x6d9d6122 , 0xfde5380c, 0xa4beea44,0x4bdecfa9,0xf6bb4b60,0xbebfbc70, &NBSP;0X289B7EC6,0XEAA127FA,0XD4EF3085,0X04881D05, 0xd9d4d039,0xe6db99e5,0x1fa27cf8,0xc4ac5665, 0xf4292244,0x432aff97,0xab9423a7,0xfc93a039, &NBSP;0X655B59C3,0X8F0CCC92,0XFFEFF47D,0X85845DD1, 0x6fa87e4f , 0XFE2CE6E0,0XA3014314,0X4E0811A1, 0xf7537e82,0xbd3af235,0x2ad7d2bb,0xeb86d391]; var byte_bit_len = 8; var md5_base_len = 64; var md5_a = 0x67452301; var md5_b = 0xefcdab89; var md5_c = 0x98badcfe; var md5_d = 0x10325476; var first_fill_byte = 0x80;