<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 22,comments - 35,trackbacks - 0

    ?

    < HTML >

    < HEAD >

    < META?http - equiv = ' Content-Type ' ?content = ' text/html;?charset=gb2312 ' >

    < TITLE > 非常流行的JS的md5加密辦法 </ TITLE >

    </ HEAD >

    < BODY? >



    < input?id = test?value = webasp >

    < input?type = button?value = md5?onclick = " alert(hex_md5(test.value)) " >



    < script >

    var?hexcase?
    = ? 0 ;?? /* ?hex?output?format.?0?-?lowercase;?1?-?uppercase???????? */

    var?b64pad??
    = ? "" ;? /* ?base-64?pad?character.?"="?for?strict?RFC?compliance??? */

    var?chrsz???
    = ? 8 ;?? /* ?bits?per?input?character.?8?-?ASCII;?16?-?Unicode?????? */



    /*

    ?*?These?are?the?functions?you'll?usually?want?to?call

    ?*?They?take?string?arguments?and?return?either?hex?or?base-64?encoded?strings

    ?
    */

    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));?}



    /* ?Backwards?compatibility?-?same?as?hex_md5()? */

    function?calcMD5(s){?
    return ?binl2hex(core_md5(str2binl(s),?s.length? * ?chrsz));}



    /* ?

    ?*?Perform?a?simple?self-test?to?see?if?the?VM?is?working?

    ?
    */

    function?md5_vm_test()

    {

    ??
    return ?hex_md5( " abc " )? == ? " 900150983cd24fb0d6963f7d28e17f72 " ;

    }



    /*

    ?*?Calculate?the?MD5?of?an?array?of?little-endian?words,?and?a?bit?length

    ?
    */

    function?core_md5(x,?len)

    {

    ??
    /* ?append?padding? */

    ??x[len?
    >> ? 5 ]? |= ? 0x80 ? << ?((len)? % ? 32 );

    ??x[(((len?
    + ? 64 )? >>> ? 9 )? << ? 4 )? + ? 14 ]? = ?len;

    ??

    ??var?a?
    = ?? 1732584193 ;

    ??var?b?
    = ? - 271733879 ;

    ??var?c?
    = ? - 1732584194 ;

    ??var?d?
    = ?? 271733878 ;



    ??
    for (var?i? = ? 0 ;?i? < ?x.length;?i? += ? 16 )

    ??{

    ????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);

    ??

    }



    /*

    ?*?These?functions?implement?the?four?basic?operations?the?algorithm?uses.

    ?
    */

    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);

    }



    /*

    ?*?Calculate?the?HMAC-MD5,?of?a?key?and?some?data

    ?
    */

    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? < ? 16 ;?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 );

    }



    /*

    ?*?Add?integers,?wrapping?at?2^32.?This?uses?16-bit?operations?internally

    ?*?to?work?around?bugs?in?some?JS?interpreters.

    ?
    */

    function?safe_add(x,?y)

    {

    ??var?lsw?
    = ?(x? & ? 0xFFFF )? + ?(y? & ? 0xFFFF );

    ??var?msw?
    = ?(x? >> ? 16 )? + ?(y? >> ? 16 )? + ?(lsw? >> ? 16 );

    ??
    return ?(msw? << ? 16 )? | ?(lsw? & ? 0xFFFF );

    }



    /*

    ?*?Bitwise?rotate?a?32-bit?number?to?the?left.

    ?
    */

    function?bit_rol(num,?cnt)

    {

    ??
    return ?(num? << ?cnt)? | ?(num? >>> ?( 32 ? - ?cnt));

    }



    /*

    ?*?Convert?a?string?to?an?array?of?little-endian?words

    ?*?If?chrsz?is?ASCII,?characters?>255?have?their?hi-byte?silently?ignored.

    ?
    */

    function?str2binl(str)

    {

    ??var?bin?
    = ?Array();

    ??var?mask?
    = ?( 1 ? << ?chrsz)? - ? 1 ;

    ??
    for (var?i? = ? 0 ;?i? < ?str.length? * ?chrsz;?i? += ?chrsz)

    ????bin[i
    >> 5 ]? |= ?(str.charCodeAt(i? / ?chrsz)? & ?mask)? << ?(i % 32 );

    ??
    return ?bin;

    }



    /*

    ?*?Convert?an?array?of?little-endian?words?to?a?hex?string.

    ?
    */

    function?binl2hex(binarray)

    {

    ??var?hex_tab?
    = ?hexcase? ? ? " 0123456789ABCDEF " ?:? " 0123456789abcdef " ;

    ??var?str?
    = ? "" ;

    ??
    for (var?i? = ? 0 ;?i? < ?binarray.length? * ? 4 ;?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;

    }



    /*

    ?*?Convert?an?array?of?little-endian?words?to?a?base-64?string

    ?
    */

    function?binl2b64(binarray)

    {

    ??var?tab?
    = ? " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ " ;

    ??var?str?
    = ? "" ;

    ??
    for (var?i? = ? 0 ;?i? < ?binarray.length? * ? 4 ;?i? += ? 3 )

    ??{

    ????var?triplet?
    = ?(((binarray[i??? >> ? 2 ]? >> ? 8 ? * ?(?i??? % 4 ))? & ? 0xFF )? << ? 16 )

    ????????????????
    | ?(((binarray[i + 1 ? >> ? 2 ]? >> ? 8 ? * ?((i + 1 ) % 4 ))? & ? 0xFF )? << ? 8 ?)

    ????????????????
    | ??((binarray[i + 2 ? >> ? 2 ]? >> ? 8 ? * ?((i + 2 ) % 4 ))? & ? 0xFF );

    ????
    for (var?j? = ? 0 ;?j? < ? 4 ;?j ++ )

    ????{

    ??????
    if (i? * ? 8 ? + ?j? * ? 6 ? > ?binarray.length? * ? 32 )?str? += ?b64pad;

    ??????
    else ?str? += ?tab.charAt((triplet? >> ? 6 * ( 3 - j))? & ? 0x3F );

    ????}

    ??}

    ??
    return ?str;

    }

    </ script > ?



    </ BODY ></ HTML >
    posted on 2006-12-25 17:11 kelven 閱讀(612) 評論(0)  編輯  收藏 所屬分類: JavaScript
    主站蜘蛛池模板: 一个人免费观看视频www| 国产成人免费A在线视频| 亚洲伊人久久综合中文成人网| 久久精品国产亚洲AV高清热| 四虎影视久久久免费观看| 皇色在线视频免费网站| 亚洲国产精品一区二区第一页 | 国产亚洲综合一区二区三区| 亚洲一级毛片免费看| 91麻豆精品国产自产在线观看亚洲 | 久久精品亚洲视频| 九九视频高清视频免费观看| 四虎在线视频免费观看| 亚洲福利视频网站| 免费国产99久久久香蕉| 亚洲精品乱码久久久久久不卡| 亚洲日韩亚洲另类激情文学| 中文字幕免费在线观看| 国产亚洲婷婷香蕉久久精品| 日韩在线视频线视频免费网站| 日韩免费在线观看| 亚洲人成小说网站色| 亚洲一区免费在线观看| 亚洲视频在线观看| 免费无码一区二区三区蜜桃| 在线日韩日本国产亚洲| 免费无遮挡无码视频在线观看| 免费羞羞视频网站| 男人天堂2018亚洲男人天堂| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲av无码精品网站| 两性色午夜视频免费网| 亚洲人成电影在线播放| 黄网站色成年片大免费高清 | 亚洲国产黄在线观看| 色偷偷噜噜噜亚洲男人| 国产美女a做受大片免费| 亚洲欧美日韩综合俺去了| 女人18毛片水真多免费播放| 亚洲综合偷自成人网第页色| 岛国av无码免费无禁网站|