小程序md5加密

創(chuàng)建一個(gè)js文件將下方代碼復(fù)制過(guò)去

function md5(string) {
  varx = Array();
  var k, AA, BB, CC, DD, a, b, c, d;
  varS11 =7, S12 =12, S13 =17, S14 =22;
  varS21 =5, S22 =9, S23 =14, S24 =20;
  varS31 =4, S32 =11, S33 =16, S34 =23;
  varS41 =6, S42 =10, S43 =15, S44 =21;
  string= Utf8Encode(string);
  x = ConvertToWordArray(string);
  a =0x67452301;
  b =0xEFCDAB89;
  c =0x98BADCFE;
  d =0x10325476;
  for(k =0; k < x.length; k +=16) {
    AA = a;
    BB = b;
    CC = c;
    DD = d;
    a = FF(a, b, c, d, x[k +0], S11,0xD76AA478);
    d = FF(d, a, b, c, x[k +1], S12,0xE8C7B756);
    c = FF(c, d, a, b, x[k +2], S13,0x242070DB);
    b = FF(b, c, d, a, x[k +3], S14,0xC1BDCEEE);
    a = FF(a, b, c, d, x[k +4], S11,0xF57C0FAF);
    d = FF(d, a, b, c, x[k +5], S12,0x4787C62A);
    c = FF(c, d, a, b, x[k +6], S13,0xA8304613);
    b = FF(b, c, d, a, x[k +7], S14,0xFD469501);
    a = FF(a, b, c, d, x[k +8], S11,0x698098D8);
    d = FF(d, a, b, c, x[k +9], S12,0x8B44F7AF);
    c = FF(c, d, a, b, x[k +10], S13,0xFFFF5BB1);
    b = FF(b, c, d, a, x[k +11], S14,0x895CD7BE);
    a = FF(a, b, c, d, x[k +12], S11,0x6B901122);
    d = FF(d, a, b, c, x[k +13], S12,0xFD987193);
    c = FF(c, d, a, b, x[k +14], S13,0xA679438E);
    b = FF(b, c, d, a, x[k +15], S14,0x49B40821);
    a = GG(a, b, c, d, x[k +1], S21,0xF61E2562);
    d = GG(d, a, b, c, x[k +6], S22,0xC040B340);
    c = GG(c, d, a, b, x[k +11], S23,0x265E5A51);
    b = GG(b, c, d, a, x[k +0], S24,0xE9B6C7AA);
    a = GG(a, b, c, d, x[k +5], S21,0xD62F105D);
    d = GG(d, a, b, c, x[k +10], S22,0x2441453);
    c = GG(c, d, a, b, x[k +15], S23,0xD8A1E681);
    b = GG(b, c, d, a, x[k +4], S24,0xE7D3FBC8);
    a = GG(a, b, c, d, x[k +9], S21,0x21E1CDE6);
    d = GG(d, a, b, c, x[k +14], S22,0xC33707D6);
    c = GG(c, d, a, b, x[k +3], S23,0xF4D50D87);
    b = GG(b, c, d, a, x[k +8], S24,0x455A14ED);
    a = GG(a, b, c, d, x[k +13], S21,0xA9E3E905);
    d = GG(d, a, b, c, x[k +2], S22,0xFCEFA3F8);
    c = GG(c, d, a, b, x[k +7], S23,0x676F02D9);
    b = GG(b, c, d, a, x[k +12], S24,0x8D2A4C8A);
    a = HH(a, b, c, d, x[k +5], S31,0xFFFA3942);
    d = HH(d, a, b, c, x[k +8], S32,0x8771F681);
    c = HH(c, d, a, b, x[k +11], S33,0x6D9D6122);
    b = HH(b, c, d, a, x[k +14], S34,0xFDE5380C);
    a = HH(a, b, c, d, x[k +1], S31,0xA4BEEA44);
    d = HH(d, a, b, c, x[k +4], S32,0x4BDECFA9);
    c = HH(c, d, a, b, x[k +7], S33,0xF6BB4B60);
    b = HH(b, c, d, a, x[k +10], S34,0xBEBFBC70);
    a = HH(a, b, c, d, x[k +13], S31,0x289B7EC6);
    d = HH(d, a, b, c, x[k +0], S32,0xEAA127FA);
    c = HH(c, d, a, b, x[k +3], S33,0xD4EF3085);
    b = HH(b, c, d, a, x[k +6], S34,0x4881D05);
    a = HH(a, b, c, d, x[k +9], S31,0xD9D4D039);
    d = HH(d, a, b, c, x[k +12], S32,0xE6DB99E5);
    c = HH(c, d, a, b, x[k +15], S33,0x1FA27CF8);
    b = HH(b, c, d, a, x[k +2], S34,0xC4AC5665);
    a = II(a, b, c, d, x[k +0], S41,0xF4292244);
    d = II(d, a, b, c, x[k +7], S42,0x432AFF97);
    c = II(c, d, a, b, x[k +14], S43,0xAB9423A7);
    b = II(b, c, d, a, x[k +5], S44,0xFC93A039);
    a = II(a, b, c, d, x[k +12], S41,0x655B59C3);
    d = II(d, a, b, c, x[k +3], S42,0x8F0CCC92);
    c = II(c, d, a, b, x[k +10], S43,0xFFEFF47D);
    b = II(b, c, d, a, x[k +1], S44,0x85845DD1);
    a = II(a, b, c, d, x[k +8], S41,0x6FA87E4F);
    d = II(d, a, b, c, x[k +15], S42,0xFE2CE6E0);
    c = II(c, d, a, b, x[k +6], S43,0xA3014314);
    b = II(b, c, d, a, x[k +13], S44,0x4E0811A1);
    a = II(a, b, c, d, x[k +4], S41,0xF7537E82);
    d = II(d, a, b, c, x[k +11], S42,0xBD3AF235);
    c = II(c, d, a, b, x[k +2], S43,0x2AD7D2BB);
    b = II(b, c, d, a, x[k +9], S44,0xEB86D391);
    a = AddUnsigned(a, AA);
    b = AddUnsigned(b, BB);
    c = AddUnsigned(c, CC);
    d = AddUnsigned(d, DD);
  }
  vartemp = WordToHex(a) + WordToHex(b) + WordToHex(c) + WordToHex(d);
  return temp.toUpperCase();
}
function RotateLeft(lValue, iShiftBits) {
  return(lValue << iShiftBits) | (lValue >>> (32- iShiftBits));
}
function AddUnsigned(lX, lY) {
  var lX4, lY4, lX8, lY8, lResult;
  lX8 = (lX &0x80000000);
  lY8 = (lY &0x80000000);
  lX4 = (lX &0x40000000);
  lY4 = (lY &0x40000000);
  lResult = (lX &0x3FFFFFFF) + (lY &0x3FFFFFFF);
  if(lX4 & lY4) {
    return(lResult ^0x80000000^ lX8 ^ lY8);
  }
  if(lX4 | lY4) {
    if(lResult &0x40000000) {
      return(lResult ^0xC0000000^ lX8 ^ lY8);
    } else {
      return(lResult ^0x40000000^ lX8 ^ lY8);
    }
  } else {
    return(lResult ^ lX8 ^ lY8);
  }
}
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 FF(a, b, c, d, x, s, ac) {
  a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
  return AddUnsigned(RotateLeft(a, s), b);
}
function GG(a, b, c, d, x, s, ac) {
  a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
  return AddUnsigned(RotateLeft(a, s), b);
}
function HH(a, b, c, d, x, s, ac) {
  a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
  return AddUnsigned(RotateLeft(a, s), b);
}
function II(a, b, c, d, x, s, ac) {
  a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
  return AddUnsigned(RotateLeft(a, s), b);
}
function ConvertToWordArray(string) {
  var lWordCount;
  varlMessageLength =string.length;
  varlNumberOfWords_temp1 = lMessageLength +8;
  varlNumberOfWords_temp2 = (lNumberOfWords_temp1 - (lNumberOfWords_temp1 %64)) /64;
  varlNumberOfWords = (lNumberOfWords_temp2 +1) *16;
  varlWordArray = Array(lNumberOfWords -1);
  varlBytePosition =0;
  varlByteCount =0;
  while(lByteCount < lMessageLength) {
    lWordCount = (lByteCount - (lByteCount %4)) /4;
    lBytePosition = (lByteCount %4) *8;
    lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition));
    lByteCount++;
  }
  lWordCount = (lByteCount - (lByteCount %4)) /4;
  lBytePosition = (lByteCount %4) *8;
  lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<< lBytePosition);
  lWordArray[lNumberOfWords -2] = lMessageLength <<3;
  lWordArray[lNumberOfWords -1] = lMessageLength >>>29;
  return lWordArray;
}
function WordToHex(lValue) {
  varWordToHexValue ="", WordToHexValue_temp ="", lByte, lCount;
  for(lCount =0; lCount <=3; lCount++) {
    lByte = (lValue >>> (lCount *8)) &255;
    WordToHexValue_temp ="0"+ lByte.toString(16);
    WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length -2,2);
  }
  return WordToHexValue;
}
function Utf8Encode(string) {
  varutftext ="";
  for(varn =0; n
    varc =string.charCodeAt(n);
    if(c <128) {
      utftext += String.fromCharCode(c);
    } elseif((c >127) && (c <2048)) {
      utftext += String.fromCharCode((c >>6) |192);
      utftext += String.fromCharCode((c &63) |128);
    } else {
      utftext += String.fromCharCode((c >>12) |224);
      utftext += String.fromCharCode(((c >>6) &63) |128);
      utftext += String.fromCharCode((c &63) |128);
    }
  }
  return utftext;
}
module.exports = {
  md5: md5
}

在需要用md5加密的地方,引入文件

const MD5 = require('./md5.js')

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末着饥,一起剝皮案震驚了整個(gè)濱河市浪感,隨后出現(xiàn)的幾起案子答渔,更是在濱河造成了極大的恐慌拨扶,老刑警劉巖箫荡,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件说榆,死亡現(xiàn)場(chǎng)離奇詭異锥忿,居然都是意外死亡牛郑,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門敬鬓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)淹朋,“玉大人笙各,你說(shuō)我怎么就攤上這事〈∩郑” “怎么了杈抢?”我有些...
    開(kāi)封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)仑性。 經(jīng)常有香客問(wèn)我惶楼,道長(zhǎng),這世上最難降的妖魔是什么诊杆? 我笑而不...
    開(kāi)封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任歼捐,我火速辦了婚禮,結(jié)果婚禮上晨汹,老公的妹妹穿的比我還像新娘豹储。我一直安慰自己,他們只是感情好淘这,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布颂翼。 她就那樣靜靜地躺著,像睡著了一般慨灭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上球及,一...
    開(kāi)封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天氧骤,我揣著相機(jī)與錄音,去河邊找鬼吃引。 笑死筹陵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的镊尺。 我是一名探鬼主播朦佩,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼庐氮!你這毒婦竟也來(lái)了语稠?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤弄砍,失蹤者是張志新(化名)和其女友劉穎仙畦,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體音婶,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡慨畸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了衣式。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寸士。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡檐什,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出弱卡,到底是詐尸還是另有隱情乃正,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布谐宙,位于F島的核電站烫葬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏凡蜻。R本人自食惡果不足惜搭综,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望划栓。 院中可真熱鬧兑巾,春花似錦、人聲如沸忠荞。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)委煤。三九已至堂油,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碧绞,已是汗流浹背府框。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留讥邻,地道東北人迫靖。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像兴使,于是被迫代替她去往敵國(guó)和親系宜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354