QQMD5封闭到C#

private string MD5(string uin, string pass, string code)
{
    //添加COM引用:Microsoft Script Control 1.0
    string MyJs = @"function MD5(uin,pass,code){var I=hexchar2bin(md5(pass));var H=md5(I+uin);var G=md5(H+code.toUpperCase());return G }var hexcase=1;var b64pad="""";va" +
    "r chrsz=8;var mode=32;function md5(A){return hex_md5(A)}function hex_md5(A){return binl2hex(core_md5(str2binl(A),A.length*chrsz))}function str_md5(A){" +
    "return binl2str(core_md5(str2binl(A),A.length*chrsz))}function hex_hmac_md5(A,B){return binl2hex(core_hmac_md5(A,B))}function b64_hmac_md5(A,B){return" +
    " binl2b64(core_hmac_md5(A,B))}function str_hmac_md5(A,B){return binl2str(core_hmac_md5(A,B))}function core_md5(K,F){ K[F>>5]|=128<<((F)% 32);K[(((F+64" +
    ")>>>9)<<4)+14]=F;var J=1732584193;var I=-271733879;var H=-1732584194;var G=271733878;for(var C=0;C<K.length;C+=16){var E=J;var D=I;var B=H;var A=G;J=m" +
    "d5_ff(J,I,H,G,K[C+0],7,-680876936);G=md5_ff(G,J,I,H,K[C+1],12,-389564586);H=md5_ff(H,G,J,I,K[C+2],17,606105819);I=md5_ff(I,H,G,J,K[C+3],22,-1044525330" +
    ");J=md5_ff(J,I,H,G,K[C+4],7,-176418897);G=md5_ff(G,J,I,H,K[C+5],12,1200080426);H=md5_ff(H,G,J,I,K[C+6],17,-1473231341);I=md5_ff(I,H,G,J,K[C+7],22,-457" +
    "05983);J=md5_ff(J,I,H,G,K[C+8],7,1770035416);G=md5_ff(G,J,I,H,K[C+9],12,-1958414417);H=md5_ff(H,G,J,I,K[C+10],17,-42063);I=md5_ff(I,H,G,J,K[C+11],22,-" +
    "1990404162);J=md5_ff(J,I,H,G,K[C+12],7,1804603682);G=md5_ff(G,J,I,H,K[C+13],12,-40341101);H=md5_ff(H,G,J,I,K[C+14],17,-1502002290);I=md5_ff(I,H,G,J,K[" +
    "C+15],22,1236535329);J=md5_gg(J,I,H,G,K[C+1],5,-165796510);G=md5_gg(G,J,I,H,K[C+6],9,-1069501632);H=md5_gg(H,G,J,I,K[C+11],14,643717713);I=md5_gg(I,H," +
    "G,J,K[C+0],20,-373897302);J=md5_gg(J,I,H,G,K[C+5],5,-701558691);G=md5_gg(G,J,I,H,K[C+10],9,38016083);H=md5_gg(H,G,J,I,K[C+15],14,-660478335);I=md5_gg(" +
    "I,H,G,J,K[C+4],20,-405537848);J=md5_gg(J,I,H,G,K[C+9],5,568446438);G=md5_gg(G,J,I,H,K[C+14],9,-1019803690);H=md5_gg(H,G,J,I,K[C+3],14,-187363961);I=md" +
    "5_gg(I,H,G,J,K[C+8],20,1163531501);J=md5_gg(J,I,H,G,K[C+13],5,-1444681467);G=md5_gg(G,J,I,H,K[C+2],9,-51403784);H=md5_gg(H,G,J,I,K[C+7],14,1735328473)" +
    ";I=md5_gg(I,H,G,J,K[C+12],20,-1926607734);J=md5_hh(J,I,H,G,K[C+5],4,-378558);G=md5_hh(G,J,I,H,K[C+8],11,-2022574463);H=md5_hh(H,G,J,I,K[C+11],16,18390" +
    "30562);I=md5_hh(I,H,G,J,K[C+14],23,-35309556);J=md5_hh(J,I,H,G,K[C+1],4,-1530992060);G=md5_hh(G,J,I,H,K[C+4],11,1272893353);H=md5_hh(H,G,J,I,K[C+7],16" +
    ",-155497632);I=md5_hh(I,H,G,J,K[C+10],23,-1094730640);J=md5_hh(J,I,H,G,K[C+13],4,681279174);G=md5_hh(G,J,I,H,K[C+0],11,-358537222);H=md5_hh(H,G,J,I,K[" +
    "C+3],16,-722521979);I=md5_hh(I,H,G,J,K[C+6],23,76029189);J=md5_hh(J,I,H,G,K[C+9],4,-640364487);G=md5_hh(G,J,I,H,K[C+12],11,-421815835);H=md5_hh(H,G,J," +
    "I,K[C+15],16,530742520);I=md5_hh(I,H,G,J,K[C+2],23,-995338651);J=md5_ii(J,I,H,G,K[C+0],6,-198630844);G=md5_ii(G,J,I,H,K[C+7],10,1126891415);H=md5_ii(H" +
    ",G,J,I,K[C+14],15,-1416354905);I=md5_ii(I,H,G,J,K[C+5],21,-57434055);J=md5_ii(J,I,H,G,K[C+12],6,1700485571);G=md5_ii(G,J,I,H,K[C+3],10,-1894986606);H=" +
    "md5_ii(H,G,J,I,K[C+10],15,-1051523);I=md5_ii(I,H,G,J,K[C+1],21,-2054922799);J=md5_ii(J,I,H,G,K[C+8],6,1873313359);G=md5_ii(G,J,I,H,K[C+15],10,-3061174" +
    "4);H=md5_ii(H,G,J,I,K[C+6],15,-1560198380);I=md5_ii(I,H,G,J,K[C+13],21,1309151649);J=md5_ii(J,I,H,G,K[C+4],6,-145523070);G=md5_ii(G,J,I,H,K[C+11],10,-" +
    "1120210379);H=md5_ii(H,G,J,I,K[C+2],15,718787259);I=md5_ii(I,H,G,J,K[C+9],21,-343485551);J=safe_add(J,E);I=safe_add(I,D);H=safe_add(H,B);G=safe_add(G," +
    "A)}if(mode==16){return Array(I,H)}else{return Array(J,I,H,G)} }function md5_cmn(F,C,B,A,E,D){return safe_add(bit_rol(safe_add(safe_add(C,F),safe_add(A" +
    ",D)),E),B)}function md5_ff(C,B,G,F,A,E,D){return md5_cmn((B&G)|((~B)&F),C,B,A,E,D)}function md5_gg(C,B,G,F,A,E,D){return md5_cmn((B&F)|(G&(~F)),C,B,A," +
    "E,D)}function md5_hh(C,B,G,F,A,E,D){return md5_cmn(B^G^F,C,B,A,E,D)}function md5_ii(C,B,G,F,A,E,D){return md5_cmn(G^(B|(~F)),C,B,A,E,D)}function core_" +
    "hmac_md5(C,F){var E=str2binl(C);if(E.length>16){ E=core_md5(E,C.length*chrsz)}var A=Array(16),D=Array(16);for(var B=0;B<16;B++){ A[B]=E[B]^909522486;D" +
    "[B]=E[B]^1549556828 }var G=core_md5(A.concat(str2binl(F)),512+F.length*chrsz);return core_md5(D.concat(G),512+128)}function safe_add(A,D){var C=(A&655" +
    "35)+(D&65535);var B=(A>>16)+(D>>16)+(C>>16);return (B<<16)|(C&65535)}function bit_rol(A,B){return (A<<B)|(A>>>(32-B))}function str2binl(D){var C=Array" +
    @"();var A=(1<<chrsz)-1;for(var B=0;B<D.length*chrsz;B+=chrsz){ C[B>>5]|=(D.charCodeAt(B/chrsz)&A)<<(B % 32)}return C }function binl2str(C){var D="""";v" +
    @"ar A=(1<<chrsz)-1;for(var B=0;B<C.length*32;B+=chrsz){ D+=String.fromCharCode((C[B>>5]>>>(B % 32))&A)}return D }function binl2hex(C){var B=hexcase?""0" +
    @"123456789ABCDEF"":""0123456789abcdef"";var D="""";for(var A=0;A<C.length*4;A++){ D+=B.charAt((C[A>>2]>>((A % 4)*8+4))&15)+B.charAt((C[A>>2]>>((A % 4)*" +
    @"8))&15)}return D }function binl2b64(D){var C=""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"";var F="""";for(var B=0;B<D.length*4;" +
    "B+=3){var E=(((D[B>>2]>>8*(B % 4))&255)<<16)|(((D[B+1>>2]>>8*((B+1)% 4))&255)<<8)|((D[B+2>>2]>>8*((B+2)% 4))&255);for(var A=0;A<4;A++){if(B*8+A*6>D.le" +
    @"ngth*32){ F+=b64pad }else{ F+=C.charAt((E>>6*(3-A))&63)} } }return F }function hexchar2bin(str){var arr=[];for(var i=0;i<str.length;i=i+2){ arr.push(""" +
    @"\\x""+str.substr(i,2))} arr=arr.join("""");eval(""var temp='""+arr+""'"");return temp}";
    object[] _params = new object[3];
    _params[0] = uin;
    _params[1] = pass;
    _params[2] = code;
    MSScriptControl.ScriptControl js = new MSScriptControl.ScriptControl();
    js.Language = "javascript";
    js.AddCode(MyJs);
    string result = js.Run("MD5", _params);
    return result;
}
 
private void button2_Click(object sender, EventArgs e)
{
    MessageBox.Show(MD5("23564575","sd3245fgh","jkug"));
}




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值