萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> jquery插件開發之實現md5插件

jquery插件開發之實現md5插件

 這篇文章主要介紹了jquery開發實現的md5插件,最後返回的是一串十進制數,在jquery1.9.2下測試通過,需要的朋友可以參考下

方法返回的是一串十進制數,在jquery1.9.2下測試通過。    代碼如下: (function($){  $.md5 = function(o) {   if(null === o) {    return 'null';   }   if(typeof o != "string") {    return 'null';   }   //計算填充的長度   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 += 64) {    var buf_p = new Array(16);    for(var 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];     }    }    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,       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,       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,       md5_ti[k + 3]);    }    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]);    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]);    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(var 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++)    md5_code_str +=
copyright © 萬盛學電腦網 all rights reserved