<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JS調(diào)用MD5加密

          共 1562字,需瀏覽 4分鐘

           ·

          2020-12-04 15:49

          點擊上方藍色字體,選擇“標(biāo)星公眾號”

          優(yōu)質(zhì)文章,第一時間送達

          ? 作者?|??羅毅豪

          來源 |? urlify.cn/BJjqMz

          66套java從入門到精通實戰(zhàn)課程分享

          為了系統(tǒng)的安全,前端一般需要對密碼進行MD5加密,然后傳輸給后臺處理。MD5的英文是Message Digest Algorithm(信息摘要算法),是不可逆的算法,只能通過暴力破解,所以較為安全。

          需要引入md5.js,代碼如下:

          var?hexcase?=?0;
          var?b64pad??=?"";
          var?chrsz???=?8;
          function?hex_md5(s){?return?binl2hex(core_md5(str2binl(s),?s.length?*?chrsz));}
          function?b64_md5(s){?return?binl2b64(core_md5(str2binl(s),?s.length?*?chrsz));}
          function?hex_hmac_md5(key,?data)?{?return?binl2hex(core_hmac_md5(key,?data));?}
          function?b64_hmac_md5(key,?data)?{?return?binl2b64(core_hmac_md5(key,?data));?}
          function?calcMD5(s){?return?binl2hex(core_md5(str2binl(s),?s.length?*?chrsz));}

          function?md5_vm_test()
          {
          ??return?hex_md5("abc")?==?"900150983cd24fb0d6963f7d28e17f72";
          }

          function?core_md5(x,?len)
          {

          ??x[len?>>?5]?|=?0x80?<??x[(((len?+?64)?>>>?9)?<??var?a?=??1732584193;
          ??var?b?=?-271733879;
          ??var?c?=?-1732584194;
          ??var?d?=??271733878;
          ??for(var?i?=?0;?i???{
          ????var?olda?=?a;
          ????var?oldb?=?b;
          ????var?oldc?=?c;
          ????var?oldd?=?d;

          ????a?=?md5_ff(a,?b,?c,?d,?x[i+?0],?7?,?-680876936);
          ????d?=?md5_ff(d,?a,?b,?c,?x[i+?1],?12,?-389564586);
          ????c?=?md5_ff(c,?d,?a,?b,?x[i+?2],?17,??606105819);
          ????b?=?md5_ff(b,?c,?d,?a,?x[i+?3],?22,?-1044525330);
          ????a?=?md5_ff(a,?b,?c,?d,?x[i+?4],?7?,?-176418897);
          ????d?=?md5_ff(d,?a,?b,?c,?x[i+?5],?12,??1200080426);
          ????c?=?md5_ff(c,?d,?a,?b,?x[i+?6],?17,?-1473231341);
          ????b?=?md5_ff(b,?c,?d,?a,?x[i+?7],?22,?-45705983);
          ????a?=?md5_ff(a,?b,?c,?d,?x[i+?8],?7?,??1770035416);
          ????d?=?md5_ff(d,?a,?b,?c,?x[i+?9],?12,?-1958414417);
          ????c?=?md5_ff(c,?d,?a,?b,?x[i+10],?17,?-42063);
          ????b?=?md5_ff(b,?c,?d,?a,?x[i+11],?22,?-1990404162);
          ????a?=?md5_ff(a,?b,?c,?d,?x[i+12],?7?,??1804603682);
          ????d?=?md5_ff(d,?a,?b,?c,?x[i+13],?12,?-40341101);
          ????c?=?md5_ff(c,?d,?a,?b,?x[i+14],?17,?-1502002290);
          ????b?=?md5_ff(b,?c,?d,?a,?x[i+15],?22,??1236535329);
          ????a?=?md5_gg(a,?b,?c,?d,?x[i+?1],?5?,?-165796510);
          ????d?=?md5_gg(d,?a,?b,?c,?x[i+?6],?9?,?-1069501632);
          ????c?=?md5_gg(c,?d,?a,?b,?x[i+11],?14,??643717713);
          ????b?=?md5_gg(b,?c,?d,?a,?x[i+?0],?20,?-373897302);
          ????a?=?md5_gg(a,?b,?c,?d,?x[i+?5],?5?,?-701558691);
          ????d?=?md5_gg(d,?a,?b,?c,?x[i+10],?9?,??38016083);
          ????c?=?md5_gg(c,?d,?a,?b,?x[i+15],?14,?-660478335);
          ????b?=?md5_gg(b,?c,?d,?a,?x[i+?4],?20,?-405537848);
          ????a?=?md5_gg(a,?b,?c,?d,?x[i+?9],?5?,??568446438);
          ????d?=?md5_gg(d,?a,?b,?c,?x[i+14],?9?,?-1019803690);
          ????c?=?md5_gg(c,?d,?a,?b,?x[i+?3],?14,?-187363961);
          ????b?=?md5_gg(b,?c,?d,?a,?x[i+?8],?20,??1163531501);
          ????a?=?md5_gg(a,?b,?c,?d,?x[i+13],?5?,?-1444681467);
          ????d?=?md5_gg(d,?a,?b,?c,?x[i+?2],?9?,?-51403784);
          ????c?=?md5_gg(c,?d,?a,?b,?x[i+?7],?14,??1735328473);
          ????b?=?md5_gg(b,?c,?d,?a,?x[i+12],?20,?-1926607734);
          ????a?=?md5_hh(a,?b,?c,?d,?x[i+?5],?4?,?-378558);
          ????d?=?md5_hh(d,?a,?b,?c,?x[i+?8],?11,?-2022574463);
          ????c?=?md5_hh(c,?d,?a,?b,?x[i+11],?16,??1839030562);
          ????b?=?md5_hh(b,?c,?d,?a,?x[i+14],?23,?-35309556);
          ????a?=?md5_hh(a,?b,?c,?d,?x[i+?1],?4?,?-1530992060);
          ????d?=?md5_hh(d,?a,?b,?c,?x[i+?4],?11,??1272893353);
          ????c?=?md5_hh(c,?d,?a,?b,?x[i+?7],?16,?-155497632);
          ????b?=?md5_hh(b,?c,?d,?a,?x[i+10],?23,?-1094730640);
          ????a?=?md5_hh(a,?b,?c,?d,?x[i+13],?4?,??681279174);
          ????d?=?md5_hh(d,?a,?b,?c,?x[i+?0],?11,?-358537222);
          ????c?=?md5_hh(c,?d,?a,?b,?x[i+?3],?16,?-722521979);
          ????b?=?md5_hh(b,?c,?d,?a,?x[i+?6],?23,??76029189);
          ????a?=?md5_hh(a,?b,?c,?d,?x[i+?9],?4?,?-640364487);
          ????d?=?md5_hh(d,?a,?b,?c,?x[i+12],?11,?-421815835);
          ????c?=?md5_hh(c,?d,?a,?b,?x[i+15],?16,??530742520);
          ????b?=?md5_hh(b,?c,?d,?a,?x[i+?2],?23,?-995338651);
          ????a?=?md5_ii(a,?b,?c,?d,?x[i+?0],?6?,?-198630844);
          ????d?=?md5_ii(d,?a,?b,?c,?x[i+?7],?10,??1126891415);
          ????c?=?md5_ii(c,?d,?a,?b,?x[i+14],?15,?-1416354905);
          ????b?=?md5_ii(b,?c,?d,?a,?x[i+?5],?21,?-57434055);
          ????a?=?md5_ii(a,?b,?c,?d,?x[i+12],?6?,??1700485571);
          ????d?=?md5_ii(d,?a,?b,?c,?x[i+?3],?10,?-1894986606);
          ????c?=?md5_ii(c,?d,?a,?b,?x[i+10],?15,?-1051523);
          ????b?=?md5_ii(b,?c,?d,?a,?x[i+?1],?21,?-2054922799);
          ????a?=?md5_ii(a,?b,?c,?d,?x[i+?8],?6?,??1873313359);
          ????d?=?md5_ii(d,?a,?b,?c,?x[i+15],?10,?-30611744);
          ????c?=?md5_ii(c,?d,?a,?b,?x[i+?6],?15,?-1560198380);
          ????b?=?md5_ii(b,?c,?d,?a,?x[i+13],?21,??1309151649);
          ????a?=?md5_ii(a,?b,?c,?d,?x[i+?4],?6?,?-145523070);
          ????d?=?md5_ii(d,?a,?b,?c,?x[i+11],?10,?-1120210379);
          ????c?=?md5_ii(c,?d,?a,?b,?x[i+?2],?15,??718787259);
          ????b?=?md5_ii(b,?c,?d,?a,?x[i+?9],?21,?-343485551);

          ????a?=?safe_add(a,?olda);
          ????b?=?safe_add(b,?oldb);
          ????c?=?safe_add(c,?oldc);
          ????d?=?safe_add(d,?oldd);
          ??}
          ??return?Array(a,?b,?c,?d);

          }

          function?md5_cmn(q,?a,?b,?x,?s,?t)
          {
          ??return?safe_add(bit_rol(safe_add(safe_add(a,?q),?safe_add(x,?t)),?s),b);
          }
          function?md5_ff(a,?b,?c,?d,?x,?s,?t)
          {
          ??return?md5_cmn((b?&?c)?|?((~b)?&?d),?a,?b,?x,?s,?t);
          }
          function?md5_gg(a,?b,?c,?d,?x,?s,?t)
          {
          ??return?md5_cmn((b?&?d)?|?(c?&?(~d)),?a,?b,?x,?s,?t);
          }
          function?md5_hh(a,?b,?c,?d,?x,?s,?t)
          {
          ??return?md5_cmn(b?^?c?^?d,?a,?b,?x,?s,?t);
          }
          function?md5_ii(a,?b,?c,?d,?x,?s,?t)
          {
          ??return?md5_cmn(c?^?(b?|?(~d)),?a,?b,?x,?s,?t);
          }

          function?core_hmac_md5(key,?data)
          {
          ??var?bkey?=?str2binl(key);
          ??if(bkey.length?>?16)?bkey?=?core_md5(bkey,?key.length?*?chrsz);

          ??var?ipad?=?Array(16),?opad?=?Array(16);
          ??for(var?i?=?0;?i???{
          ????ipad[i]?=?bkey[i]?^?0x36363636;
          ????opad[i]?=?bkey[i]?^?0x5C5C5C5C;
          ??}

          ??var?hash?=?core_md5(ipad.concat(str2binl(data)),?512?+?data.length?*?chrsz);
          ??return?core_md5(opad.concat(hash),?512?+?128);
          }

          function?safe_add(x,?y)
          {
          ??var?lsw?=?(x?&?0xFFFF)?+?(y?&?0xFFFF);
          ??var?msw?=?(x?>>?16)?+?(y?>>?16)?+?(lsw?>>?16);
          ??return?(msw?<}

          function?bit_rol(num,?cnt)
          {
          ??return?(num?<>>?(32?-?cnt));
          }

          function?str2binl(str)
          {
          ??var?bin?=?Array();
          ??var?mask?=?(1?<??for(var?i?=?0;?i?????bin[i>>5]?|=?(str.charCodeAt(i?/?chrsz)?&?mask)?<??return?bin;
          }

          function?binl2hex(binarray)
          {
          ??var?hex_tab?=?hexcase???"0123456789ABCDEF"?:?"0123456789abcdef";
          ??var?str?=?"";
          ??for(var?i?=?0;?i???{
          ????str?+=?hex_tab.charAt((binarray[i>>2]?>>?((i%4)*8+4))?&?0xF)?+
          ???????????hex_tab.charAt((binarray[i>>2]?>>?((i%4)*8??))?&?0xF);
          ??}
          ??return?str;
          }

          function?binl2b64(binarray)
          {
          ??var?tab?=?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
          ??var?str?=?"";
          ??for(var?i?=?0;?i???{
          ????var?triplet?=?(((binarray[i???>>?2]?>>?8?*?(?i???%4))?&?0xFF)?<????????????????|?(((binarray[i+1?>>?2]?>>?8?*?((i+1)%4))?&?0xFF)?<????????????????|??((binarray[i+2?>>?2]?>>?8?*?((i+2)%4))?&?0xFF);
          ????for(var?j?=?0;?j?????{
          ??????if(i?*?8?+?j?*?6?>?binarray.length?*?32)?str?+=?b64pad;
          ??????else?str?+=?tab.charAt((triplet?>>?6*(3-j))?&?0x3F);
          ????}
          ??}
          ??return?str;
          }

          用法:將密碼作為hex_md5的參數(shù)傳入,即可加密成功,如以下代碼所示:

          1?var?data?=?{
          2?????originPassword:hex_md5($('.oldPwd').val()),
          3?????password:hex_md5($('.newPwd').val())
          4?}






          粉絲福利:實戰(zhàn)springboot+CAS單點登錄系統(tǒng)視頻教程免費領(lǐng)取

          ???

          ?長按上方微信二維碼?2 秒
          即可獲取資料



          感謝點贊支持下哈?

          瀏覽 53
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲欧美性爱一区 | 亚洲少妇xxx | 黄色片大女人吃大鸡巴老头子日大逼逼 | 蜜桃视频在线观看视频 | 国产v日韩 |