encrypt2-min.js 8.1 KB

123456789101112131415161718
  1. var encrypt2={cipher:function(b,d){for(var a=d.length/4-1,e=[[],[],[],[]],c=0;16>c;c++)e[c%4][Math.floor(c/4)]=b[c];e=encrypt2.addRoundKey(e,d,0,4);for(c=1;c<a;c++)e=encrypt2.subBytes(e,4),e=encrypt2.shiftRows(e,4),e=encrypt2.mixColumns(e,4),e=encrypt2.addRoundKey(e,d,c,4);e=encrypt2.subBytes(e,4);e=encrypt2.shiftRows(e,4);e=encrypt2.addRoundKey(e,d,a,4);a=Array(16);for(c=0;16>c;c++)a[c]=e[c%4][Math.floor(c/4)];return a},keyExpansion:function(b){for(var d=b.length/4,a=d+6,e=Array(4*(a+1)),c=Array(4),
  2. f=0;f<d;f++)e[f]=[b[4*f],b[4*f+1],b[4*f+2],b[4*f+3]];for(f=d;f<4*(a+1);f++){e[f]=Array(4);for(b=0;4>b;b++)c[b]=e[f-1][b];if(0==f%d){c=encrypt2.subWord(encrypt2.rotWord(c));for(b=0;4>b;b++)c[b]^=encrypt2.rCon[f/d][b]}else 6<d&&4==f%d&&(c=encrypt2.subWord(c));for(b=0;4>b;b++)e[f][b]=e[f-d][b]^c[b]}return e},subBytes:function(b,d){for(var a=0;4>a;a++)for(var e=0;e<d;e++)b[a][e]=encrypt2.sBox[b[a][e]];return b},shiftRows:function(b,d){for(var a=Array(4),e=1;4>e;e++){for(var c=0;4>c;c++)a[c]=b[e][(c+e)%
  3. d];for(c=0;4>c;c++)b[e][c]=a[c]}return b},mixColumns:function(b){for(var d=0;4>d;d++){for(var a=Array(4),e=Array(4),c=0;4>c;c++)a[c]=b[c][d],e[c]=b[c][d]&128?b[c][d]<<1^283:b[c][d]<<1;b[0][d]=e[0]^a[1]^e[1]^a[2]^a[3];b[1][d]=a[0]^e[1]^a[2]^e[2]^a[3];b[2][d]=a[0]^a[1]^e[2]^a[3]^e[3];b[3][d]=a[0]^e[0]^a[1]^a[2]^e[3]}return b},addRoundKey:function(b,d,a,e){for(var c=0;4>c;c++)for(var f=0;f<e;f++)b[c][f]^=d[4*a+f][c];return b},subWord:function(b){for(var d=0;4>d;d++)b[d]=encrypt2.sBox[b[d]];return b},
  4. rotWord:function(b){for(var d=b[0],a=0;3>a;a++)b[a]=b[a+1];b[3]=d;return b},sBox:[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,
  5. 56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],rCon:[[0,
  6. 0,0,0],[1,0,0,0],[2,0,0,0],[4,0,0,0],[8,0,0,0],[16,0,0,0],[32,0,0,0],[64,0,0,0],[128,0,0,0],[27,0,0,0],[54,0,0,0]],Ctr:{}};
  7. encrypt2.Ctr.encrypt=function(b,d,a){a=a||256;if(!(128==a||192==a||256==a))return"";b=Utf8.encode(b);d=Utf8.encode(d);var e=a/8,c=Array(e);for(a=0;a<e;a++)c[a]=isNaN(d.charCodeAt(a))?0:d.charCodeAt(a);c=encrypt2.cipher(c,encrypt2.keyExpansion(c));c=c.concat(c.slice(0,e-16));d=Array(16);a=(new Date).getTime();var e=a%1E3,f=Math.floor(a/1E3),g=Math.floor(65535*Math.random());for(a=0;2>a;a++)d[a]=e>>>8*a&255;for(a=0;2>a;a++)d[a+2]=g>>>8*a&255;for(a=0;4>a;a++)d[a+4]=f>>>8*a&255;e="";for(a=0;8>a;a++)e+=
  8. String.fromCharCode(d[a]);for(var c=encrypt2.keyExpansion(c),f=Math.ceil(b.length/16),g=Array(f),h=0;h<f;h++){for(a=0;4>a;a++)d[15-a]=h>>>8*a&255;for(a=0;4>a;a++)d[15-a-4]=h/4294967296>>>8*a;var j=encrypt2.cipher(d,c),l=h<f-1?16:(b.length-1)%16+1,k=Array(l);for(a=0;a<l;a++)k[a]=j[a]^b.charCodeAt(16*h+a),k[a]=String.fromCharCode(k[a]);g[h]=k.join("")}b=e+g.join("");return b=Base64.encode(b)};
  9. encrypt2.Ctr.decrypt=function(b,d,a){a=a||256;d+=String.fromCharCode(99);d+=String.fromCharCode(101);d+=String.fromCharCode(97);d+=String.fromCharCode(117);d+=String.fromCharCode(121);if(!(128==a||192==a||256==a))return"";b=Base64.decode(b);d=Utf8.encode(d);var e=a/8,c=Array(e);for(a=0;a<e;a++)c[a]=isNaN(d.charCodeAt(a))?0:d.charCodeAt(a);c=encrypt2.cipher(c,encrypt2.keyExpansion(c));c=c.concat(c.slice(0,e-16));d=Array(8);ctrTxt=b.slice(0,8);for(a=0;8>a;a++)d[a]=ctrTxt.charCodeAt(a);e=encrypt2.keyExpansion(c);
  10. c=Math.ceil((b.length-8)/16);a=Array(c);for(var f=0;f<c;f++)a[f]=b.slice(8+16*f,16*f+24);b=a;for(var g=Array(b.length),f=0;f<c;f++){for(a=0;4>a;a++)d[15-a]=f>>>8*a&255;for(a=0;4>a;a++)d[15-a-4]=(f+1)/4294967296-1>>>8*a&255;var h=encrypt2.cipher(d,e),j=Array(b[f].length);for(a=0;a<b[f].length;a++)j[a]=h[a]^b[f].charCodeAt(a),j[a]=String.fromCharCode(j[a]);g[f]=j.join("")}b=g.join("");return b=Utf8.decode(b)};
  11. var Base64={code:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(b,d){var a,e,c,f,g=[],h="",j,l,k=Base64.code;l=("undefined"==typeof d?0:d)?b.encodeUTF8():b;j=l.length%3;if(0<j)for(;3>j++;)h+="=",l+="\x00";for(j=0;j<l.length;j+=3)a=l.charCodeAt(j),e=l.charCodeAt(j+1),c=l.charCodeAt(j+2),f=a<<16|e<<8|c,a=f>>18&63,e=f>>12&63,c=f>>6&63,f&=63,g[j/3]=k.charAt(a)+k.charAt(e)+k.charAt(c)+k.charAt(f);g=g.join("");return g=g.slice(0,g.length-h.length)+h},decode:function(b,
  12. d){d="undefined"==typeof d?!1:d;var a,e,c,f,g,h=[],j,l=Base64.code;j=d?b.decodeUTF8():b;for(var k=0;k<j.length;k+=4)a=l.indexOf(j.charAt(k)),e=l.indexOf(j.charAt(k+1)),f=l.indexOf(j.charAt(k+2)),g=l.indexOf(j.charAt(k+3)),c=a<<18|e<<12|f<<6|g,a=c>>>16&255,e=c>>>8&255,c&=255,h[k/4]=String.fromCharCode(a,e,c),64==g&&(h[k/4]=String.fromCharCode(a,e)),64==f&&(h[k/4]=String.fromCharCode(a));f=h.join("");return d?f.decodeUTF8():f}},Utf8={encode:function(b){b=b.replace(/[\u0080-\u07ff]/g,function(b){b=b.charCodeAt(0);
  13. return String.fromCharCode(192|b>>6,128|b&63)});return b=b.replace(/[\u0800-\uffff]/g,function(b){b=b.charCodeAt(0);return String.fromCharCode(224|b>>12,128|b>>6&63,128|b&63)})},decode:function(b){b=b.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g,function(b){b=(b.charCodeAt(0)&15)<<12|(b.charCodeAt(1)&63)<<6|b.charCodeAt(2)&63;return String.fromCharCode(b)});return b=b.replace(/[\u00c0-\u00df][\u0080-\u00bf]/g,function(b){b=(b.charCodeAt(0)&31)<<6|b.charCodeAt(1)&63;return String.fromCharCode(b)})}};
  14. function getSsoUid(){return null==readCookie("uid2")||""==readCookie("uid2")||null==readCookie("uid1")||""==readCookie("uid1")?"":encrypt2.Ctr.decrypt(unescape(readCookie("uid2")),readCookie("uid1"))}function setSsoUid(){var b=""+(new Date).getTime();createCookie("uid1",b,null,"/");b=escape(encrypt2.Ctr.encrypt(frm.PASSWORD1.value,b+"ceauy"));createCookie("uid2",b,null,"/");createCookie("LOGINID",document.frm.LOGINID.value,null,"/")}
  15. function ssoLogin(b,d,a,e){"[object Function]"!=Object.prototype.toString.call(e)&&(e=function(){});var c=showMsg("\u6b63\u5728\u5355\u70b9\u767b\u9646",-1),f=b+"/index_sso.jsp";jsonpRequest(f,{},function(b){if("CONFIRMERROR"==b.LOGINSTATE&&null!=b.ERRORID){var h=stringToHex(encrypt(b.ERRORID,a));jsonpRequest(f,{LOGINID:d,UID:h,SID:b.SID},function(a){hideMsg(c);e(a)})}else hideMsg(c),e(b)},c)}
  16. function jsonpRequest(b,d,a,e){"[object Function]"!=Object.prototype.toString.call(a)&&(a=function(){});null==window.fwJsonpCallbackId&&(window.fwJsonpCallbackId=0);null==window.fwJsonpData&&(window.fwJsonpData={});var c=document.createElement("script");c.onreadystatechange=function(){if("complete"==this.readyState||"loaded"==this.readyState){this.onreadystatechange=null;if(null==window.fwJsonpData[""+h]){var c=alert,d;d=b;for(var f=0,g=0;4>g;g++)f=d.indexOf("/",f+1);d=d.substring(0,f);c("\u670d\u52a1\u5668"+
  17. d+"\u6ca1\u6709\u8fd4\u56de\u6570\u636e");null!=e&&hideMsg(e)}else a(window.fwJsonpData[""+h]);delete window.fwJsonpData[""+h]}};var f="",g;for(g in d)f+="&"+g+"="+encodeURIComponent(d[g]);var h=++window.fwJsonpCallbackId,f=f+("&callback=fwJsonpCallback"+h)+("&t="+(new Date).getTime());b=b+"?"+f.substring(1);window["fwJsonpCallback"+h]=function(a){window.fwJsonpData[""+h]=a};c.src=b;document.getElementsByTagName("head")[0].appendChild(c)}
  18. function createCookie(b,d,a,e,c,f){var g="";null!=a&&(g=new Date,g.setTime(g.getTime()+a),g="; expires="+g.toGMTString());d=escape(d);document.cookie=b+"="+d+g+(e?"; path="+e:"")+(c?"; domain="+c:"")+(f?"; secure":"")}function readCookie(b){b+="=";for(var d=document.cookie.split(";"),a=0;a<d.length;a++){for(var e=d[a];" "==e.charAt(0);)e=e.substring(1,e.length);if(0==e.indexOf(b))return unescape(e.substring(b.length,e.length))}return null};