Commit a87b85a5 by 阳浪

添加配置文件

parent e9b2922b
<cross-domain-policy>
<allow-access-from domain="*.polyv.net"/>
</cross-domain-policy>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge, chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link id="faviconLink" rel="shortcut icon" href="/static/favicon.ico">
<link href="/static/lib/antd.min.css" rel="stylesheet" type="text/css">
<!--需要title 国际化 代码在/src/index.jsx 中获取修改-->
<title id="htmlTitle"></title>
<!--<title id="htmlTitle">未木云学习平台</title>-->
</head>
<body>
<div id="root"></div>
<script>
//30分钟不操作退回登陆页
var move = document.getElementById('root')
function onmove() {
console.log(window.location)
var path = window.location.pathname
var login = '/' + window.location.pathname.split("/")[1] + '/' + window.location.pathname.split("/")[2] + '/login'
if (path.substring(path.length - 5) !== 'login') {
sessionStorage.clear()
window.location.href = window.location.origin + login
}
}
function debounce(func, wait) {
var timeout;
return function () {
var context = this;
var args = arguments;
if (timeout) clearTimeout(timeout);
timeout = window.setTimeout(function () {
func.apply(context, args)
}, wait);
}
}
move.onmousemove = debounce(onmove, 7200000);
if (typeof Object.assign != 'function') {
Object.assign = function (target) {
'use strict';
if (target == null) {
throw new TypeError('Cannot convert undefined or null to object');
}
target = Object(target);
for (var index = 1; index < arguments.length; index++) {
var source = arguments[index];
if (source != null) {
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
}
return target;
};
}
if (typeof "".includes != 'function') {
String.prototype.includes = function (str) {
if(this.indexOf(str)!=-1){
return true;
}else{
return false;
}
}
}
if (typeof [].includes != 'function') {
Array.prototype.includes = function (str) {
if(this.indexOf(str)!=-1){
return true;
}else{
return false;
}
}
}
if (typeof [].fill != 'function') {
Array.prototype.fill = function (str) {
for(var i = 0;i<this.length;i++){
this[i] = str;
}
return this;
}
}
// if (typeof [].entries != 'function') {
// Array.prototype.entries = function (str) {
// for(var i = 0;i<this.length;i++){
// this[i] = str;
// }
// return this;
// }
// }
</script>
<script type="text/javascript" src="/static/lib/crypto1/crypto/crypto.js"></script>
<script type="text/javascript" src="/static/lib/crypto1/hmac/hmac.js"></script>
<script type="text/javascript" src="/static/lib/crypto1/sha1/sha1.js"></script>
<script type="text/javascript" src="/static/lib/base64.js"></script>
<script type="text/javascript" src="/static/variable.js"></script>
<script type="text/javascript" src="/static/lib/sm2.min.js"></script>
<script type="text/javascript" src="/static/lib/es6-promise.auto.min.js"></script>
<script type="text/javascript" src="/js/styles.558ae8.js"></script><script type="text/javascript" src="/js/index.558ae8.js"></script><script type="text/javascript" src="/js/vendor.558ae8.js"></script></body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="cn">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1">
<title>站点维护中</title>
<style>
body,
html {
width: 100%;
margin: 0;
padding: 0;
}
.site-maintain-container {
max-width: 1200px;
width: 100%;
margin: 0 auto;
text-align: center;
}
.site-maintain-container img {
width: 450px;
height: 341px;
margin-top: 160px;
}
.site-maintain-tip-text {
width: 655px;
text-align: center;
margin: 0 auto;
margin-top: 20px;
font-size: 30px;
font-weight: 500;
color: #666666;
line-height: 42px;
letter-spacing: 1px;
}
@media screen and (max-width: 600px) {
body,
html {
width: 100%;
margin: 0;
padding: 0;
}
.site-maintain-container {
width: 100%;
margin: 0 auto;
text-align: center;
}
.site-maintain-container img {
width: 215px;
height: 171px;
margin-top: 135px;
}
.site-maintain-tip-text {
width: 100%;
text-align: center;
margin: 0 auto;
margin-top: 20px;
font-size: 14px;
font-weight: 500;
color: #999;
line-height: 20px;
letter-spacing: 1px;
word-break: break-all;
}
}
</style>
</head>
<body>
<div class="site-maintain-container">
<img src="https://customproject.oss-cn-shanghai.aliyuncs.com/photo/site_maintenance.png" alt="">
<div class="site-maintain-tip-text">
</div>
</div>
<script>
function getUrlParam(code){
var searchText = window.location.search.split("?")[1].split("&");
var result = "";
for(var i = 0;i<searchText.length;i++){
var arr = searchText[i].split("=");
if(arr[0]==code){
result = arr[1];
break;
}
}
return result;
}
window.onload = function () {
var textDom = document.querySelector(".site-maintain-tip-text");
var text = getUrlParam("text");
textDom.innerHTML = decodeURIComponent(text)||"站点维护中,给您的学习带来不便,敬请谅解";
}
</script>
</body>
</html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
var Base64 = {
// private property
_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
// public method for encoding
encode : function (input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = Base64._utf8_encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
}
return output;
},
// public method for decoding
decode : function (input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
while (i < input.length) {
enc1 = this._keyStr.indexOf(input.charAt(i++));
enc2 = this._keyStr.indexOf(input.charAt(i++));
enc3 = this._keyStr.indexOf(input.charAt(i++));
enc4 = this._keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
}
output = Base64._utf8_decode(output);
return output;
},
// private method for UTF-8 encoding
_utf8_encode : function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((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;
},
// private method for UTF-8 decoding
_utf8_decode : function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while ( i < utftext.length ) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
}
else if((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
}
else {
c2 = utftext.charCodeAt(i+1);
c3 = utftext.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var k=Crypto.util;var e=[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,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];for(var j=[],g=0;g<256;g++){j[e[g]]=g}var c=[],b=[],q=[],n=[],h=[],f=[];function p(u,t){for(var s=0,v=0;v<8;v++){if(t&1){s^=u}var w=u&128;u=(u<<1)&255;if(w){u^=27}t>>>=1}return s}for(var g=0;g<256;g++){c[g]=p(g,2);b[g]=p(g,3);q[g]=p(g,9);n[g]=p(g,11);h[g]=p(g,13);f[g]=p(g,14)}var d=[0,1,2,4,8,16,32,64,128,27,54];var a=[[],[],[],[]],r,o,m;var l=Crypto.AES={encrypt:function(v,u,w){var i=k.stringToBytes(v),t=k.randomBytes(l._blocksize*4),s=Crypto.PBKDF2(u,k.bytesToString(t),32,{asBytes:true});w=w||Crypto.mode.OFB;l._init(s);w.encrypt(l,i,t);return k.bytesToBase64(t.concat(i))},decrypt:function(u,t,v){var w=k.base64ToBytes(u),s=w.splice(0,l._blocksize*4),i=Crypto.PBKDF2(t,k.bytesToString(s),32,{asBytes:true});v=v||Crypto.mode.OFB;l._init(i);v.decrypt(l,w,s);return k.bytesToString(w)},_blocksize:4,_encryptblock:function(s,t){for(var z=0;z<l._blocksize;z++){for(var i=0;i<4;i++){a[z][i]=s[t+i*4+z]}}for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]^=m[i][z]}}for(var y=1;y<o;y++){for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]=e[a[z][i]]}}a[1].push(a[1].shift());a[2].push(a[2].shift());a[2].push(a[2].shift());a[3].unshift(a[3].pop());for(var i=0;i<4;i++){var x=a[0][i],w=a[1][i],v=a[2][i],u=a[3][i];a[0][i]=c[x]^b[w]^v^u;a[1][i]=x^c[w]^b[v]^u;a[2][i]=x^w^c[v]^b[u];a[3][i]=b[x]^w^v^c[u]}for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]^=m[y*4+i][z]}}}for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]=e[a[z][i]]}}a[1].push(a[1].shift());a[2].push(a[2].shift());a[2].push(a[2].shift());a[3].unshift(a[3].pop());for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]^=m[o*4+i][z]}}for(var z=0;z<l._blocksize;z++){for(var i=0;i<4;i++){s[t+i*4+z]=a[z][i]}}},_decryptblock:function(t,s){for(var z=0;z<l._blocksize;z++){for(var i=0;i<4;i++){a[z][i]=t[s+i*4+z]}}for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]^=m[o*4+i][z]}}for(var y=1;y<o;y++){a[1].unshift(a[1].pop());a[2].push(a[2].shift());a[2].push(a[2].shift());a[3].push(a[3].shift());for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]=j[a[z][i]]}}for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]^=m[(o-y)*4+i][z]}}for(var i=0;i<4;i++){var x=a[0][i],w=a[1][i],v=a[2][i],u=a[3][i];a[0][i]=f[x]^n[w]^h[v]^q[u];a[1][i]=q[x]^f[w]^n[v]^h[u];a[2][i]=h[x]^q[w]^f[v]^n[u];a[3][i]=n[x]^h[w]^q[v]^f[u]}}a[1].unshift(a[1].pop());a[2].push(a[2].shift());a[2].push(a[2].shift());a[3].push(a[3].shift());for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]=j[a[z][i]]}}for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]^=m[i][z]}}for(var z=0;z<l._blocksize;z++){for(var i=0;i<4;i++){t[s+i*4+z]=a[z][i]}}},_init:function(i){r=i.length/4;o=r+6;l._keyexpansion(i)},_keyexpansion:function(s){m=[];for(var t=0;t<r;t++){m[t]=[s[t*4],s[t*4+1],s[t*4+2],s[t*4+3]]}for(var t=r;t<l._blocksize*(o+1);t++){var i=[m[t-1][0],m[t-1][1],m[t-1][2],m[t-1][3]];if(t%r==0){i.push(i.shift());i[0]=e[i[0]];i[1]=e[i[1]];i[2]=e[i[2]];i[3]=e[i[3]];i[0]^=d[t/r]}else{if(r>6&&t%r==4){i[0]=e[i[0]];i[1]=e[i[1]];i[2]=e[i[2]];i[3]=e[i[3]]}}m[t]=[m[t-r][0]^i[0],m[t-r][1]^i[1],m[t-r][2]^i[2],m[t-r][3]^i[3]]}}}})();
\ No newline at end of file
/*!
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){
// Shortcut
var util = Crypto.util;
// Precomputed SBOX
var SBOX = [ 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5,
0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,
0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc,
0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a,
0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,
0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,
0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,
0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b,
0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85,
0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,
0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,
0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,
0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17,
0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88,
0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,
0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,
0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,
0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9,
0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6,
0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,
0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,
0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,
0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94,
0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68,
0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 ];
// Compute inverse SBOX lookup table
for (var INVSBOX = [], i = 0; i < 256; i++) INVSBOX[SBOX[i]] = i;
// Compute mulitplication in GF(2^8) lookup tables
var MULT2 = [],
MULT3 = [],
MULT9 = [],
MULTB = [],
MULTD = [],
MULTE = [];
function xtime(a, b) {
for (var result = 0, i = 0; i < 8; i++) {
if (b & 1) result ^= a;
var hiBitSet = a & 0x80;
a = (a << 1) & 0xFF;
if (hiBitSet) a ^= 0x1b;
b >>>= 1;
}
return result;
}
for (var i = 0; i < 256; i++) {
MULT2[i] = xtime(i,2);
MULT3[i] = xtime(i,3);
MULT9[i] = xtime(i,9);
MULTB[i] = xtime(i,0xB);
MULTD[i] = xtime(i,0xD);
MULTE[i] = xtime(i,0xE);
}
// Precomputed RCon lookup
var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];
// Inner state
var state = [[], [], [], []],
keylength,
nrounds,
keyschedule;
var AES = Crypto.AES = {
/**
* Public API
*/
encrypt: function (message, password, mode) {
var
// Convert to bytes
m = util.stringToBytes(message),
// Generate random IV
iv = util.randomBytes(AES._blocksize * 4),
// Generate key
k = Crypto.PBKDF2(password, util.bytesToString(iv), 32, { asBytes: true });
// Determine mode
mode = mode || Crypto.mode.OFB;
// Encrypt
AES._init(k);
mode.encrypt(AES, m, iv);
// Return ciphertext
return util.bytesToBase64(iv.concat(m));
},
decrypt: function (ciphertext, password, mode) {
var
// Convert to bytes
c = util.base64ToBytes(ciphertext),
// Separate IV and message
iv = c.splice(0, AES._blocksize * 4),
// Generate key
k = Crypto.PBKDF2(password, util.bytesToString(iv), 32, { asBytes: true });
// Determine mode
mode = mode || Crypto.mode.OFB;
// Decrypt
AES._init(k);
mode.decrypt(AES, c, iv);
// Return plaintext
return util.bytesToString(c);
},
/**
* Package private methods and properties
*/
_blocksize: 4,
_encryptblock: function (m, offset) {
// Set input
for (var row = 0; row < AES._blocksize; row++) {
for (var col = 0; col < 4; col++)
state[row][col] = m[offset + col * 4 + row];
}
// Add round key
for (var row = 0; row < 4; row++) {
for (var col = 0; col < 4; col++)
state[row][col] ^= keyschedule[col][row];
}
for (var round = 1; round < nrounds; round++) {
// Sub bytes
for (var row = 0; row < 4; row++) {
for (var col = 0; col < 4; col++)
state[row][col] = SBOX[state[row][col]];
}
// Shift rows
state[1].push(state[1].shift());
state[2].push(state[2].shift());
state[2].push(state[2].shift());
state[3].unshift(state[3].pop());
// Mix columns
for (var col = 0; col < 4; col++) {
var s0 = state[0][col],
s1 = state[1][col],
s2 = state[2][col],
s3 = state[3][col];
state[0][col] = MULT2[s0] ^ MULT3[s1] ^ s2 ^ s3;
state[1][col] = s0 ^ MULT2[s1] ^ MULT3[s2] ^ s3;
state[2][col] = s0 ^ s1 ^ MULT2[s2] ^ MULT3[s3];
state[3][col] = MULT3[s0] ^ s1 ^ s2 ^ MULT2[s3];
}
// Add round key
for (var row = 0; row < 4; row++) {
for (var col = 0; col < 4; col++)
state[row][col] ^= keyschedule[round * 4 + col][row];
}
}
// Sub bytes
for (var row = 0; row < 4; row++) {
for (var col = 0; col < 4; col++)
state[row][col] = SBOX[state[row][col]];
}
// Shift rows
state[1].push(state[1].shift());
state[2].push(state[2].shift());
state[2].push(state[2].shift());
state[3].unshift(state[3].pop());
// Add round key
for (var row = 0; row < 4; row++) {
for (var col = 0; col < 4; col++)
state[row][col] ^= keyschedule[nrounds * 4 + col][row];
}
// Set output
for (var row = 0; row < AES._blocksize; row++) {
for (var col = 0; col < 4; col++)
m[offset + col * 4 + row] = state[row][col];
}
},
_decryptblock: function (c, offset) {
// Set input
for (var row = 0; row < AES._blocksize; row++) {
for (var col = 0; col < 4; col++)
state[row][col] = c[offset + col * 4 + row];
}
// Add round key
for (var row = 0; row < 4; row++) {
for (var col = 0; col < 4; col++)
state[row][col] ^= keyschedule[nrounds * 4 + col][row];
}
for (var round = 1; round < nrounds; round++) {
// Inv shift rows
state[1].unshift(state[1].pop());
state[2].push(state[2].shift());
state[2].push(state[2].shift());
state[3].push(state[3].shift());
// Inv sub bytes
for (var row = 0; row < 4; row++) {
for (var col = 0; col < 4; col++)
state[row][col] = INVSBOX[state[row][col]];
}
// Add round key
for (var row = 0; row < 4; row++) {
for (var col = 0; col < 4; col++)
state[row][col] ^= keyschedule[(nrounds - round) * 4 + col][row];
}
// Inv mix columns
for (var col = 0; col < 4; col++) {
var s0 = state[0][col],
s1 = state[1][col],
s2 = state[2][col],
s3 = state[3][col];
state[0][col] = MULTE[s0] ^ MULTB[s1] ^ MULTD[s2] ^ MULT9[s3];
state[1][col] = MULT9[s0] ^ MULTE[s1] ^ MULTB[s2] ^ MULTD[s3];
state[2][col] = MULTD[s0] ^ MULT9[s1] ^ MULTE[s2] ^ MULTB[s3];
state[3][col] = MULTB[s0] ^ MULTD[s1] ^ MULT9[s2] ^ MULTE[s3];
}
}
// Inv shift rows
state[1].unshift(state[1].pop());
state[2].push(state[2].shift());
state[2].push(state[2].shift());
state[3].push(state[3].shift());
// Inv sub bytes
for (var row = 0; row < 4; row++) {
for (var col = 0; col < 4; col++)
state[row][col] = INVSBOX[state[row][col]];
}
// Add round key
for (var row = 0; row < 4; row++) {
for (var col = 0; col < 4; col++)
state[row][col] ^= keyschedule[col][row];
}
// Set output
for (var row = 0; row < AES._blocksize; row++) {
for (var col = 0; col < 4; col++)
c[offset + col * 4 + row] = state[row][col];
}
},
/**
* Private methods
*/
_init: function (k) {
keylength = k.length / 4;
nrounds = keylength + 6;
AES._keyexpansion(k);
},
// Generate a key schedule
_keyexpansion: function (k) {
keyschedule = [];
for (var row = 0; row < keylength; row++) {
keyschedule[row] = [
k[row * 4],
k[row * 4 + 1],
k[row * 4 + 2],
k[row * 4 + 3]
];
}
for (var row = keylength; row < AES._blocksize * (nrounds + 1); row++) {
var temp = [
keyschedule[row - 1][0],
keyschedule[row - 1][1],
keyschedule[row - 1][2],
keyschedule[row - 1][3]
];
if (row % keylength == 0) {
// Rot word
temp.push(temp.shift());
// Sub word
temp[0] = SBOX[temp[0]];
temp[1] = SBOX[temp[1]];
temp[2] = SBOX[temp[2]];
temp[3] = SBOX[temp[3]];
temp[0] ^= RCON[row / keylength];
} else if (keylength > 6 && row % keylength == 4) {
// Sub word
temp[0] = SBOX[temp[0]];
temp[1] = SBOX[temp[1]];
temp[2] = SBOX[temp[2]];
temp[3] = SBOX[temp[3]];
}
keyschedule[row] = [
keyschedule[row - keylength][0] ^ temp[0],
keyschedule[row - keylength][1] ^ temp[1],
keyschedule[row - keylength][2] ^ temp[2],
keyschedule[row - keylength][3] ^ temp[3]
];
}
}
};
})();
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
Crypto.mode.CBC={encrypt:function(b,a,c){var f=b._blocksize*4;a.push(128);for(var e=0;e<a.length;e+=f){if(e==0){for(var d=0;d<f;d++){a[d]^=c[d]}}else{for(var d=0;d<f;d++){a[e+d]^=a[e+d-f]}}b._encryptblock(a,e)}},decrypt:function(a,j,d){var h=a._blocksize*4;for(var g=0;g<j.length;g+=h){var b=j.slice(g,g+h);a._decryptblock(j,g);if(g==0){for(var e=0;e<h;e++){j[e]^=d[e]}}else{for(var e=0;e<h;e++){j[g+e]^=f[e]}}var f=b}while(j.pop()!=128){}}};
\ No newline at end of file
/*!
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
Crypto.mode.CBC = {
encrypt: function (cipher, m, iv) {
var blockSizeInBytes = cipher._blocksize * 4;
// Pad
m.push(0x80);
// Encrypt each block
for (var offset = 0; offset < m.length; offset += blockSizeInBytes) {
if (offset == 0) {
// XOR first block using IV
for (var i = 0; i < blockSizeInBytes; i++)
m[i] ^= iv[i];
}
else {
// XOR this block using previous crypted block
for (var i = 0; i < blockSizeInBytes; i++)
m[offset + i] ^= m[offset + i - blockSizeInBytes];
}
// Encrypt block
cipher._encryptblock(m, offset);
}
},
decrypt: function (cipher, c, iv) {
var blockSizeInBytes = cipher._blocksize * 4;
// Decrypt each block
for (var offset = 0; offset < c.length; offset += blockSizeInBytes) {
// Save this crypted block
var thisCryptedBlock = c.slice(offset, offset + blockSizeInBytes);
// Decrypt block
cipher._decryptblock(c, offset);
if (offset == 0) {
// XOR first block using IV
for (var i = 0; i < blockSizeInBytes; i++)
c[i] ^= iv[i];
}
else {
// XOR decrypted block using previous crypted block
for (var i = 0; i < blockSizeInBytes; i++)
c[offset + i] ^= prevCryptedBlock[i];
}
// This crypted block is the new previous crypted block
var prevCryptedBlock = thisCryptedBlock;
}
// Strip padding
while (c.pop() != 0x80) ;
}
};
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";window.Crypto={};var a=Crypto.util={rotl:function(d,c){return(d<<c)|(d>>>(32-c))},rotr:function(d,c){return(d<<(32-c))|(d>>>c)},endian:function(d){if(d.constructor==Number){return a.rotl(d,8)&16711935|a.rotl(d,24)&4278255360}for(var c=0;c<d.length;c++){d[c]=a.endian(d[c])}return d},randomBytes:function(d){for(var c=[];d>0;d--){c.push(Math.floor(Math.random()*256))}return c},stringToBytes:function(e){var c=[];for(var d=0;d<e.length;d++){c.push(e.charCodeAt(d))}return c},bytesToString:function(c){var e=[];for(var d=0;d<c.length;d++){e.push(String.fromCharCode(c[d]))}return e.join("")},stringToWords:function(f){var e=[];for(var g=0,d=0;g<f.length;g++,d+=8){e[d>>>5]|=f.charCodeAt(g)<<(24-d%32)}return e},bytesToWords:function(d){var f=[];for(var e=0,c=0;e<d.length;e++,c+=8){f[c>>>5]|=d[e]<<(24-c%32)}return f},wordsToBytes:function(e){var d=[];for(var c=0;c<e.length*32;c+=8){d.push((e[c>>>5]>>>(24-c%32))&255)}return d},bytesToHex:function(c){var e=[];for(var d=0;d<c.length;d++){e.push((c[d]>>>4).toString(16));e.push((c[d]&15).toString(16))}return e.join("")},hexToBytes:function(e){var d=[];for(var f=0;f<e.length;f+=2){d.push(parseInt(e.substr(f,2),16))}return d},bytesToBase64:function(d){if(typeof btoa=="function"){return btoa(a.bytesToString(d))}var c=[],f;for(var e=0;e<d.length;e++){switch(e%3){case 0:c.push(b.charAt(d[e]>>>2));f=(d[e]&3)<<4;break;case 1:c.push(b.charAt(f|(d[e]>>>4)));f=(d[e]&15)<<2;break;case 2:c.push(b.charAt(f|(d[e]>>>6)));c.push(b.charAt(d[e]&63));f=-1}}if(f!=undefined&&f!=-1){c.push(b.charAt(f))}while(c.length%4!=0){c.push("=")}return c.join("")},base64ToBytes:function(d){if(typeof atob=="function"){return a.stringToBytes(atob(d))}d=d.replace(/[^A-Z0-9+\/]/ig,"");var c=[];for(var e=0;e<d.length;e++){switch(e%4){case 1:c.push((b.indexOf(d.charAt(e-1))<<2)|(b.indexOf(d.charAt(e))>>>4));break;case 2:c.push(((b.indexOf(d.charAt(e-1))&15)<<4)|(b.indexOf(d.charAt(e))>>>2));break;case 3:c.push(((b.indexOf(d.charAt(e-1))&3)<<6)|(b.indexOf(d.charAt(e))));break}}return c}};Crypto.mode={}})();(function(){var a=Crypto.util;var b=Crypto.MD5=function(e,c){var d=a.wordsToBytes(b._md5(e));return c&&c.asBytes?d:c&&c.asString?a.bytesToString(d):a.bytesToHex(d)};b._md5=function(s){var g=a.stringToWords(s),h=s.length*8,q=1732584193,p=-271733879,o=-1732584194,n=271733878;for(var j=0;j<g.length;j++){g[j]=((g[j]<<8)|(g[j]>>>24))&16711935|((g[j]<<24)|(g[j]>>>8))&4278255360}g[h>>>5]|=128<<(h%32);g[(((h+64)>>>9)<<4)+14]=h;for(var j=0;j<g.length;j+=16){var e=q,k=p,f=o,r=n;q=b._ff(q,p,o,n,g[j+0],7,-680876936);n=b._ff(n,q,p,o,g[j+1],12,-389564586);o=b._ff(o,n,q,p,g[j+2],17,606105819);p=b._ff(p,o,n,q,g[j+3],22,-1044525330);q=b._ff(q,p,o,n,g[j+4],7,-176418897);n=b._ff(n,q,p,o,g[j+5],12,1200080426);o=b._ff(o,n,q,p,g[j+6],17,-1473231341);p=b._ff(p,o,n,q,g[j+7],22,-45705983);q=b._ff(q,p,o,n,g[j+8],7,1770035416);n=b._ff(n,q,p,o,g[j+9],12,-1958414417);o=b._ff(o,n,q,p,g[j+10],17,-42063);p=b._ff(p,o,n,q,g[j+11],22,-1990404162);q=b._ff(q,p,o,n,g[j+12],7,1804603682);n=b._ff(n,q,p,o,g[j+13],12,-40341101);o=b._ff(o,n,q,p,g[j+14],17,-1502002290);p=b._ff(p,o,n,q,g[j+15],22,1236535329);q=b._gg(q,p,o,n,g[j+1],5,-165796510);n=b._gg(n,q,p,o,g[j+6],9,-1069501632);o=b._gg(o,n,q,p,g[j+11],14,643717713);p=b._gg(p,o,n,q,g[j+0],20,-373897302);q=b._gg(q,p,o,n,g[j+5],5,-701558691);n=b._gg(n,q,p,o,g[j+10],9,38016083);o=b._gg(o,n,q,p,g[j+15],14,-660478335);p=b._gg(p,o,n,q,g[j+4],20,-405537848);q=b._gg(q,p,o,n,g[j+9],5,568446438);n=b._gg(n,q,p,o,g[j+14],9,-1019803690);o=b._gg(o,n,q,p,g[j+3],14,-187363961);p=b._gg(p,o,n,q,g[j+8],20,1163531501);q=b._gg(q,p,o,n,g[j+13],5,-1444681467);n=b._gg(n,q,p,o,g[j+2],9,-51403784);o=b._gg(o,n,q,p,g[j+7],14,1735328473);p=b._gg(p,o,n,q,g[j+12],20,-1926607734);q=b._hh(q,p,o,n,g[j+5],4,-378558);n=b._hh(n,q,p,o,g[j+8],11,-2022574463);o=b._hh(o,n,q,p,g[j+11],16,1839030562);p=b._hh(p,o,n,q,g[j+14],23,-35309556);q=b._hh(q,p,o,n,g[j+1],4,-1530992060);n=b._hh(n,q,p,o,g[j+4],11,1272893353);o=b._hh(o,n,q,p,g[j+7],16,-155497632);p=b._hh(p,o,n,q,g[j+10],23,-1094730640);q=b._hh(q,p,o,n,g[j+13],4,681279174);n=b._hh(n,q,p,o,g[j+0],11,-358537222);o=b._hh(o,n,q,p,g[j+3],16,-722521979);p=b._hh(p,o,n,q,g[j+6],23,76029189);q=b._hh(q,p,o,n,g[j+9],4,-640364487);n=b._hh(n,q,p,o,g[j+12],11,-421815835);o=b._hh(o,n,q,p,g[j+15],16,530742520);p=b._hh(p,o,n,q,g[j+2],23,-995338651);q=b._ii(q,p,o,n,g[j+0],6,-198630844);n=b._ii(n,q,p,o,g[j+7],10,1126891415);o=b._ii(o,n,q,p,g[j+14],15,-1416354905);p=b._ii(p,o,n,q,g[j+5],21,-57434055);q=b._ii(q,p,o,n,g[j+12],6,1700485571);n=b._ii(n,q,p,o,g[j+3],10,-1894986606);o=b._ii(o,n,q,p,g[j+10],15,-1051523);p=b._ii(p,o,n,q,g[j+1],21,-2054922799);q=b._ii(q,p,o,n,g[j+8],6,1873313359);n=b._ii(n,q,p,o,g[j+15],10,-30611744);o=b._ii(o,n,q,p,g[j+6],15,-1560198380);p=b._ii(p,o,n,q,g[j+13],21,1309151649);q=b._ii(q,p,o,n,g[j+4],6,-145523070);n=b._ii(n,q,p,o,g[j+11],10,-1120210379);o=b._ii(o,n,q,p,g[j+2],15,718787259);p=b._ii(p,o,n,q,g[j+9],21,-343485551);q+=e;p+=k;o+=f;n+=r}return a.endian([q,p,o,n])};b._ff=function(g,f,l,j,e,i,h){var k=g+(f&l|~f&j)+(e>>>0)+h;return((k<<i)|(k>>>(32-i)))+f};b._gg=function(g,f,l,j,e,i,h){var k=g+(f&j|l&~j)+(e>>>0)+h;return((k<<i)|(k>>>(32-i)))+f};b._hh=function(g,f,l,j,e,i,h){var k=g+(f^l^j)+(e>>>0)+h;return((k<<i)|(k>>>(32-i)))+f};b._ii=function(g,f,l,j,e,i,h){var k=g+(l^(f|~j))+(e>>>0)+h;return((k<<i)|(k>>>(32-i)))+f};b._blocksize=16})();
\ No newline at end of file
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";window.Crypto={};var a=Crypto.util={rotl:function(d,c){return(d<<c)|(d>>>(32-c))},rotr:function(d,c){return(d<<(32-c))|(d>>>c)},endian:function(d){if(d.constructor==Number){return a.rotl(d,8)&16711935|a.rotl(d,24)&4278255360}for(var c=0;c<d.length;c++){d[c]=a.endian(d[c])}return d},randomBytes:function(d){for(var c=[];d>0;d--){c.push(Math.floor(Math.random()*256))}return c},stringToBytes:function(e){var c=[];for(var d=0;d<e.length;d++){c.push(e.charCodeAt(d))}return c},bytesToString:function(c){var e=[];for(var d=0;d<c.length;d++){e.push(String.fromCharCode(c[d]))}return e.join("")},stringToWords:function(f){var e=[];for(var g=0,d=0;g<f.length;g++,d+=8){e[d>>>5]|=f.charCodeAt(g)<<(24-d%32)}return e},bytesToWords:function(d){var f=[];for(var e=0,c=0;e<d.length;e++,c+=8){f[c>>>5]|=d[e]<<(24-c%32)}return f},wordsToBytes:function(e){var d=[];for(var c=0;c<e.length*32;c+=8){d.push((e[c>>>5]>>>(24-c%32))&255)}return d},bytesToHex:function(c){var e=[];for(var d=0;d<c.length;d++){e.push((c[d]>>>4).toString(16));e.push((c[d]&15).toString(16))}return e.join("")},hexToBytes:function(e){var d=[];for(var f=0;f<e.length;f+=2){d.push(parseInt(e.substr(f,2),16))}return d},bytesToBase64:function(d){if(typeof btoa=="function"){return btoa(a.bytesToString(d))}var c=[],f;for(var e=0;e<d.length;e++){switch(e%3){case 0:c.push(b.charAt(d[e]>>>2));f=(d[e]&3)<<4;break;case 1:c.push(b.charAt(f|(d[e]>>>4)));f=(d[e]&15)<<2;break;case 2:c.push(b.charAt(f|(d[e]>>>6)));c.push(b.charAt(d[e]&63));f=-1}}if(f!=undefined&&f!=-1){c.push(b.charAt(f))}while(c.length%4!=0){c.push("=")}return c.join("")},base64ToBytes:function(d){if(typeof atob=="function"){return a.stringToBytes(atob(d))}d=d.replace(/[^A-Z0-9+\/]/ig,"");var c=[];for(var e=0;e<d.length;e++){switch(e%4){case 1:c.push((b.indexOf(d.charAt(e-1))<<2)|(b.indexOf(d.charAt(e))>>>4));break;case 2:c.push(((b.indexOf(d.charAt(e-1))&15)<<4)|(b.indexOf(d.charAt(e))>>>2));break;case 3:c.push(((b.indexOf(d.charAt(e-1))&3)<<6)|(b.indexOf(d.charAt(e))));break}}return c}};Crypto.mode={}})();(function(){var a=Crypto.util;var b=Crypto.SHA1=function(e,c){var d=a.wordsToBytes(b._sha1(e));return c&&c.asBytes?d:c&&c.asString?a.bytesToString(d):a.bytesToHex(d)};b._sha1=function(k){var u=a.stringToWords(k),v=k.length*8,o=[],q=1732584193,p=-271733879,h=-1732584194,g=271733878,f=-1009589776;u[v>>5]|=128<<(24-v%32);u[((v+64>>>9)<<4)+15]=v;for(var y=0;y<u.length;y+=16){var D=q,C=p,B=h,A=g,z=f;for(var x=0;x<80;x++){if(x<16){o[x]=u[y+x]}else{var s=o[x-3]^o[x-8]^o[x-14]^o[x-16];o[x]=(s<<1)|(s>>>31)}var r=((q<<5)|(q>>>27))+f+(o[x]>>>0)+(x<20?(p&h|~p&g)+1518500249:x<40?(p^h^g)+1859775393:x<60?(p&h|p&g|h&g)-1894007588:(p^h^g)-899497514);f=g;g=h;h=(p<<30)|(p>>>2);p=q;q=r}q+=D;p+=C;h+=B;g+=A;f+=z}return[q,p,h,g,f]};b._blocksize=16})();(function(){var a=Crypto.util;Crypto.HMAC=function(g,h,f,d){f=f.length>g._blocksize*4?g(f,{asBytes:true}):a.stringToBytes(f);var c=f,j=f.slice(0);for(var e=0;e<g._blocksize*4;e++){c[e]^=92;j[e]^=54}var b=g(a.bytesToString(c)+g(a.bytesToString(j)+h,{asString:true}),{asBytes:true});return d&&d.asBytes?b:d&&d.asString?a.bytesToString(b):a.bytesToHex(b)}})();(function(){var a=Crypto.util;Crypto.PBKDF2=function(m,k,b,p){var o=p&&p.hasher||Crypto.SHA1,e=p&&p.iterations||1;function l(i,j){return Crypto.HMAC(o,j,i,{asBytes:true})}var d=[],c=1;while(d.length<b){var f=l(m,k+a.bytesToString(a.wordsToBytes([c])));for(var n=f,h=1;h<e;h++){n=l(m,a.bytesToString(n));for(var g=0;g<f.length;g++){f[g]^=n[g]}}d=d.concat(f);c++}d.length=b;return p&&p.asBytes?d:p&&p.asString?a.bytesToString(d):a.bytesToHex(d)}})();(function(){var a=Crypto.util;var b=Crypto.MARC4={encrypt:function(g,f){var c=a.stringToBytes(g),e=a.randomBytes(16),d=Crypto.PBKDF2(f,a.bytesToString(e),32,{asBytes:true});b._marc4(c,d,1536);return a.bytesToBase64(e.concat(c))},decrypt:function(g,f){var h=a.base64ToBytes(g),e=h.splice(0,16),d=Crypto.PBKDF2(f,a.bytesToString(e),32,{asBytes:true});b._marc4(h,d,1536);return a.bytesToString(h)},_marc4:function(c,f,e){var h,g,l,d;for(h=0,l=[];h<256;h++){l[h]=h}for(h=0,g=0;h<256;h++){g=(g+l[h]+f[h%f.length])%256;d=l[h];l[h]=l[g];l[g]=d}h=g=0;for(var f=0-e;f<c.length;f++){h=(h+1)%256;g=(g+l[h])%256;d=l[h];l[h]=l[g];l[g]=d;if(f<0){continue}c[f]^=l[(l[h]+l[g])%256]}}}})();
\ No newline at end of file
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";window.Crypto={};var a=Crypto.util={rotl:function(d,c){return(d<<c)|(d>>>(32-c))},rotr:function(d,c){return(d<<(32-c))|(d>>>c)},endian:function(d){if(d.constructor==Number){return a.rotl(d,8)&16711935|a.rotl(d,24)&4278255360}for(var c=0;c<d.length;c++){d[c]=a.endian(d[c])}return d},randomBytes:function(d){for(var c=[];d>0;d--){c.push(Math.floor(Math.random()*256))}return c},stringToBytes:function(e){var c=[];for(var d=0;d<e.length;d++){c.push(e.charCodeAt(d))}return c},bytesToString:function(c){var e=[];for(var d=0;d<c.length;d++){e.push(String.fromCharCode(c[d]))}return e.join("")},stringToWords:function(f){var e=[];for(var g=0,d=0;g<f.length;g++,d+=8){e[d>>>5]|=f.charCodeAt(g)<<(24-d%32)}return e},bytesToWords:function(d){var f=[];for(var e=0,c=0;e<d.length;e++,c+=8){f[c>>>5]|=d[e]<<(24-c%32)}return f},wordsToBytes:function(e){var d=[];for(var c=0;c<e.length*32;c+=8){d.push((e[c>>>5]>>>(24-c%32))&255)}return d},bytesToHex:function(c){var e=[];for(var d=0;d<c.length;d++){e.push((c[d]>>>4).toString(16));e.push((c[d]&15).toString(16))}return e.join("")},hexToBytes:function(e){var d=[];for(var f=0;f<e.length;f+=2){d.push(parseInt(e.substr(f,2),16))}return d},bytesToBase64:function(d){if(typeof btoa=="function"){return btoa(a.bytesToString(d))}var c=[],f;for(var e=0;e<d.length;e++){switch(e%3){case 0:c.push(b.charAt(d[e]>>>2));f=(d[e]&3)<<4;break;case 1:c.push(b.charAt(f|(d[e]>>>4)));f=(d[e]&15)<<2;break;case 2:c.push(b.charAt(f|(d[e]>>>6)));c.push(b.charAt(d[e]&63));f=-1}}if(f!=undefined&&f!=-1){c.push(b.charAt(f))}while(c.length%4!=0){c.push("=")}return c.join("")},base64ToBytes:function(d){if(typeof atob=="function"){return a.stringToBytes(atob(d))}d=d.replace(/[^A-Z0-9+\/]/ig,"");var c=[];for(var e=0;e<d.length;e++){switch(e%4){case 1:c.push((b.indexOf(d.charAt(e-1))<<2)|(b.indexOf(d.charAt(e))>>>4));break;case 2:c.push(((b.indexOf(d.charAt(e-1))&15)<<4)|(b.indexOf(d.charAt(e))>>>2));break;case 3:c.push(((b.indexOf(d.charAt(e-1))&3)<<6)|(b.indexOf(d.charAt(e))));break}}return c}};Crypto.mode={}})();(function(){var a=Crypto.util;var b=Crypto.SHA1=function(e,c){var d=a.wordsToBytes(b._sha1(e));return c&&c.asBytes?d:c&&c.asString?a.bytesToString(d):a.bytesToHex(d)};b._sha1=function(k){var u=a.stringToWords(k),v=k.length*8,o=[],q=1732584193,p=-271733879,h=-1732584194,g=271733878,f=-1009589776;u[v>>5]|=128<<(24-v%32);u[((v+64>>>9)<<4)+15]=v;for(var y=0;y<u.length;y+=16){var D=q,C=p,B=h,A=g,z=f;for(var x=0;x<80;x++){if(x<16){o[x]=u[y+x]}else{var s=o[x-3]^o[x-8]^o[x-14]^o[x-16];o[x]=(s<<1)|(s>>>31)}var r=((q<<5)|(q>>>27))+f+(o[x]>>>0)+(x<20?(p&h|~p&g)+1518500249:x<40?(p^h^g)+1859775393:x<60?(p&h|p&g|h&g)-1894007588:(p^h^g)-899497514);f=g;g=h;h=(p<<30)|(p>>>2);p=q;q=r}q+=D;p+=C;h+=B;g+=A;f+=z}return[q,p,h,g,f]};b._blocksize=16})();(function(){var a=Crypto.util;Crypto.HMAC=function(g,h,f,d){f=f.length>g._blocksize*4?g(f,{asBytes:true}):a.stringToBytes(f);var c=f,j=f.slice(0);for(var e=0;e<g._blocksize*4;e++){c[e]^=92;j[e]^=54}var b=g(a.bytesToString(c)+g(a.bytesToString(j)+h,{asString:true}),{asBytes:true});return d&&d.asBytes?b:d&&d.asString?a.bytesToString(b):a.bytesToHex(b)}})();(function(){var a=Crypto.util;Crypto.PBKDF2=function(m,k,b,p){var o=p&&p.hasher||Crypto.SHA1,e=p&&p.iterations||1;function l(i,j){return Crypto.HMAC(o,j,i,{asBytes:true})}var d=[],c=1;while(d.length<b){var f=l(m,k+a.bytesToString(a.wordsToBytes([c])));for(var n=f,h=1;h<e;h++){n=l(m,a.bytesToString(n));for(var g=0;g<f.length;g++){f[g]^=n[g]}}d=d.concat(f);c++}d.length=b;return p&&p.asBytes?d:p&&p.asString?a.bytesToString(d):a.bytesToHex(d)}})();(function(){Crypto.mode.OFB={encrypt:a,decrypt:a};function a(c,b,d){var g=c._blocksize*4,f=d.slice(0);for(var e=0;e<b.length;e++){if(e%g==0){c._encryptblock(f,0)}b[e]^=f[e%g]}}})();(function(){var k=Crypto.util;var e=[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,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];for(var j=[],g=0;g<256;g++){j[e[g]]=g}var c=[],b=[],q=[],n=[],h=[],f=[];function p(u,t){for(var s=0,v=0;v<8;v++){if(t&1){s^=u}var w=u&128;u=(u<<1)&255;if(w){u^=27}t>>>=1}return s}for(var g=0;g<256;g++){c[g]=p(g,2);b[g]=p(g,3);q[g]=p(g,9);n[g]=p(g,11);h[g]=p(g,13);f[g]=p(g,14)}var d=[0,1,2,4,8,16,32,64,128,27,54];var a=[[],[],[],[]],r,o,m;var l=Crypto.AES={encrypt:function(v,u,w){var i=k.stringToBytes(v),t=k.randomBytes(l._blocksize*4),s=Crypto.PBKDF2(u,k.bytesToString(t),32,{asBytes:true});w=w||Crypto.mode.OFB;l._init(s);w.encrypt(l,i,t);return k.bytesToBase64(t.concat(i))},decrypt:function(u,t,v){var w=k.base64ToBytes(u),s=w.splice(0,l._blocksize*4),i=Crypto.PBKDF2(t,k.bytesToString(s),32,{asBytes:true});v=v||Crypto.mode.OFB;l._init(i);v.decrypt(l,w,s);return k.bytesToString(w)},_blocksize:4,_encryptblock:function(s,t){for(var z=0;z<l._blocksize;z++){for(var i=0;i<4;i++){a[z][i]=s[t+i*4+z]}}for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]^=m[i][z]}}for(var y=1;y<o;y++){for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]=e[a[z][i]]}}a[1].push(a[1].shift());a[2].push(a[2].shift());a[2].push(a[2].shift());a[3].unshift(a[3].pop());for(var i=0;i<4;i++){var x=a[0][i],w=a[1][i],v=a[2][i],u=a[3][i];a[0][i]=c[x]^b[w]^v^u;a[1][i]=x^c[w]^b[v]^u;a[2][i]=x^w^c[v]^b[u];a[3][i]=b[x]^w^v^c[u]}for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]^=m[y*4+i][z]}}}for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]=e[a[z][i]]}}a[1].push(a[1].shift());a[2].push(a[2].shift());a[2].push(a[2].shift());a[3].unshift(a[3].pop());for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]^=m[o*4+i][z]}}for(var z=0;z<l._blocksize;z++){for(var i=0;i<4;i++){s[t+i*4+z]=a[z][i]}}},_decryptblock:function(t,s){for(var z=0;z<l._blocksize;z++){for(var i=0;i<4;i++){a[z][i]=t[s+i*4+z]}}for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]^=m[o*4+i][z]}}for(var y=1;y<o;y++){a[1].unshift(a[1].pop());a[2].push(a[2].shift());a[2].push(a[2].shift());a[3].push(a[3].shift());for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]=j[a[z][i]]}}for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]^=m[(o-y)*4+i][z]}}for(var i=0;i<4;i++){var x=a[0][i],w=a[1][i],v=a[2][i],u=a[3][i];a[0][i]=f[x]^n[w]^h[v]^q[u];a[1][i]=q[x]^f[w]^n[v]^h[u];a[2][i]=h[x]^q[w]^f[v]^n[u];a[3][i]=n[x]^h[w]^q[v]^f[u]}}a[1].unshift(a[1].pop());a[2].push(a[2].shift());a[2].push(a[2].shift());a[3].push(a[3].shift());for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]=j[a[z][i]]}}for(var z=0;z<4;z++){for(var i=0;i<4;i++){a[z][i]^=m[i][z]}}for(var z=0;z<l._blocksize;z++){for(var i=0;i<4;i++){t[s+i*4+z]=a[z][i]}}},_init:function(i){r=i.length/4;o=r+6;l._keyexpansion(i)},_keyexpansion:function(s){m=[];for(var t=0;t<r;t++){m[t]=[s[t*4],s[t*4+1],s[t*4+2],s[t*4+3]]}for(var t=r;t<l._blocksize*(o+1);t++){var i=[m[t-1][0],m[t-1][1],m[t-1][2],m[t-1][3]];if(t%r==0){i.push(i.shift());i[0]=e[i[0]];i[1]=e[i[1]];i[2]=e[i[2]];i[3]=e[i[3]];i[0]^=d[t/r]}else{if(r>6&&t%r==4){i[0]=e[i[0]];i[1]=e[i[1]];i[2]=e[i[2]];i[3]=e[i[3]]}}m[t]=[m[t-r][0]^i[0],m[t-r][1]^i[1],m[t-r][2]^i[2],m[t-r][3]^i[3]]}}}})();
\ No newline at end of file
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";window.Crypto={};var a=Crypto.util={rotl:function(d,c){return(d<<c)|(d>>>(32-c))},rotr:function(d,c){return(d<<(32-c))|(d>>>c)},endian:function(d){if(d.constructor==Number){return a.rotl(d,8)&16711935|a.rotl(d,24)&4278255360}for(var c=0;c<d.length;c++){d[c]=a.endian(d[c])}return d},randomBytes:function(d){for(var c=[];d>0;d--){c.push(Math.floor(Math.random()*256))}return c},stringToBytes:function(e){var c=[];for(var d=0;d<e.length;d++){c.push(e.charCodeAt(d))}return c},bytesToString:function(c){var e=[];for(var d=0;d<c.length;d++){e.push(String.fromCharCode(c[d]))}return e.join("")},stringToWords:function(f){var e=[];for(var g=0,d=0;g<f.length;g++,d+=8){e[d>>>5]|=f.charCodeAt(g)<<(24-d%32)}return e},bytesToWords:function(d){var f=[];for(var e=0,c=0;e<d.length;e++,c+=8){f[c>>>5]|=d[e]<<(24-c%32)}return f},wordsToBytes:function(e){var d=[];for(var c=0;c<e.length*32;c+=8){d.push((e[c>>>5]>>>(24-c%32))&255)}return d},bytesToHex:function(c){var e=[];for(var d=0;d<c.length;d++){e.push((c[d]>>>4).toString(16));e.push((c[d]&15).toString(16))}return e.join("")},hexToBytes:function(e){var d=[];for(var f=0;f<e.length;f+=2){d.push(parseInt(e.substr(f,2),16))}return d},bytesToBase64:function(d){if(typeof btoa=="function"){return btoa(a.bytesToString(d))}var c=[],f;for(var e=0;e<d.length;e++){switch(e%3){case 0:c.push(b.charAt(d[e]>>>2));f=(d[e]&3)<<4;break;case 1:c.push(b.charAt(f|(d[e]>>>4)));f=(d[e]&15)<<2;break;case 2:c.push(b.charAt(f|(d[e]>>>6)));c.push(b.charAt(d[e]&63));f=-1}}if(f!=undefined&&f!=-1){c.push(b.charAt(f))}while(c.length%4!=0){c.push("=")}return c.join("")},base64ToBytes:function(d){if(typeof atob=="function"){return a.stringToBytes(atob(d))}d=d.replace(/[^A-Z0-9+\/]/ig,"");var c=[];for(var e=0;e<d.length;e++){switch(e%4){case 1:c.push((b.indexOf(d.charAt(e-1))<<2)|(b.indexOf(d.charAt(e))>>>4));break;case 2:c.push(((b.indexOf(d.charAt(e-1))&15)<<4)|(b.indexOf(d.charAt(e))>>>2));break;case 3:c.push(((b.indexOf(d.charAt(e-1))&3)<<6)|(b.indexOf(d.charAt(e))));break}}return c}};Crypto.mode={}})();(function(){var a=Crypto.util;var b=Crypto.SHA1=function(e,c){var d=a.wordsToBytes(b._sha1(e));return c&&c.asBytes?d:c&&c.asString?a.bytesToString(d):a.bytesToHex(d)};b._sha1=function(k){var u=a.stringToWords(k),v=k.length*8,o=[],q=1732584193,p=-271733879,h=-1732584194,g=271733878,f=-1009589776;u[v>>5]|=128<<(24-v%32);u[((v+64>>>9)<<4)+15]=v;for(var y=0;y<u.length;y+=16){var D=q,C=p,B=h,A=g,z=f;for(var x=0;x<80;x++){if(x<16){o[x]=u[y+x]}else{var s=o[x-3]^o[x-8]^o[x-14]^o[x-16];o[x]=(s<<1)|(s>>>31)}var r=((q<<5)|(q>>>27))+f+(o[x]>>>0)+(x<20?(p&h|~p&g)+1518500249:x<40?(p^h^g)+1859775393:x<60?(p&h|p&g|h&g)-1894007588:(p^h^g)-899497514);f=g;g=h;h=(p<<30)|(p>>>2);p=q;q=r}q+=D;p+=C;h+=B;g+=A;f+=z}return[q,p,h,g,f]};b._blocksize=16})();(function(){var a=Crypto.util;Crypto.HMAC=function(g,h,f,d){f=f.length>g._blocksize*4?g(f,{asBytes:true}):a.stringToBytes(f);var c=f,j=f.slice(0);for(var e=0;e<g._blocksize*4;e++){c[e]^=92;j[e]^=54}var b=g(a.bytesToString(c)+g(a.bytesToString(j)+h,{asString:true}),{asBytes:true});return d&&d.asBytes?b:d&&d.asString?a.bytesToString(b):a.bytesToHex(b)}})();(function(){var a=Crypto.util;Crypto.PBKDF2=function(m,k,b,p){var o=p&&p.hasher||Crypto.SHA1,e=p&&p.iterations||1;function l(i,j){return Crypto.HMAC(o,j,i,{asBytes:true})}var d=[],c=1;while(d.length<b){var f=l(m,k+a.bytesToString(a.wordsToBytes([c])));for(var n=f,h=1;h<e;h++){n=l(m,a.bytesToString(n));for(var g=0;g<f.length;g++){f[g]^=n[g]}}d=d.concat(f);c++}d.length=b;return p&&p.asBytes?d:p&&p.asString?a.bytesToString(d):a.bytesToHex(d)}})();(function(){var e=Crypto.util;var d=[],g=[],a;var f=Crypto.Rabbit={encrypt:function(j,i){var b=e.stringToBytes(j),h=e.randomBytes(8),c=Crypto.PBKDF2(i,e.bytesToString(h),16,{asBytes:true});f._rabbit(b,c,e.bytesToWords(h));return e.bytesToBase64(h.concat(b))},decrypt:function(j,i){var l=e.base64ToBytes(j),h=l.splice(0,8),b=Crypto.PBKDF2(i,e.bytesToString(h),16,{asBytes:true});f._rabbit(l,b,e.bytesToWords(h));return e.bytesToString(l)},_rabbit:function(h,l,o){f._keysetup(l);if(o){f._ivsetup(o)}for(var q=[],p=0;p<h.length;p++){if(p%16==0){f._nextstate();q[0]=d[0]^(d[5]>>>16)^(d[3]<<16);q[1]=d[2]^(d[7]>>>16)^(d[5]<<16);q[2]=d[4]^(d[1]>>>16)^(d[7]<<16);q[3]=d[6]^(d[3]>>>16)^(d[1]<<16);for(var n=0;n<4;n++){q[n]=((q[n]<<8)|(q[n]>>>24))&16711935|((q[n]<<24)|(q[n]>>>8))&4278255360}for(var c=120;c>=0;c-=8){q[c/8]=(q[c>>>5]>>>(24-c%32))&255}}h[p]^=q[p%16]}},_keysetup:function(b){d[0]=b[0];d[2]=b[1];d[4]=b[2];d[6]=b[3];d[1]=(b[3]<<16)|(b[2]>>>16);d[3]=(b[0]<<16)|(b[3]>>>16);d[5]=(b[1]<<16)|(b[0]>>>16);d[7]=(b[2]<<16)|(b[1]>>>16);g[0]=e.rotl(b[2],16);g[2]=e.rotl(b[3],16);g[4]=e.rotl(b[0],16);g[6]=e.rotl(b[1],16);g[1]=(b[0]&4294901760)|(b[1]&65535);g[3]=(b[1]&4294901760)|(b[2]&65535);g[5]=(b[2]&4294901760)|(b[3]&65535);g[7]=(b[3]&4294901760)|(b[0]&65535);a=0;for(var c=0;c<4;c++){f._nextstate()}for(var c=0;c<8;c++){g[c]^=d[(c+4)&7]}},_ivsetup:function(b){var l=e.endian(b[0]),j=e.endian(b[1]),k=(l>>>16)|(j&4294901760),h=(j<<16)|(l&65535);g[0]^=l;g[1]^=k;g[2]^=j;g[3]^=h;g[4]^=l;g[5]^=k;g[6]^=j;g[7]^=h;for(var c=0;c<4;c++){f._nextstate()}},_nextstate:function(){for(var c=[],h=0;h<8;h++){c[h]=g[h]}g[0]=(g[0]+1295307597+a)>>>0;g[1]=(g[1]+3545052371+((g[0]>>>0)<(c[0]>>>0)?1:0))>>>0;g[2]=(g[2]+886263092+((g[1]>>>0)<(c[1]>>>0)?1:0))>>>0;g[3]=(g[3]+1295307597+((g[2]>>>0)<(c[2]>>>0)?1:0))>>>0;g[4]=(g[4]+3545052371+((g[3]>>>0)<(c[3]>>>0)?1:0))>>>0;g[5]=(g[5]+886263092+((g[4]>>>0)<(c[4]>>>0)?1:0))>>>0;g[6]=(g[6]+1295307597+((g[5]>>>0)<(c[5]>>>0)?1:0))>>>0;g[7]=(g[7]+3545052371+((g[6]>>>0)<(c[6]>>>0)?1:0))>>>0;a=(g[7]>>>0)<(c[7]>>>0)?1:0;for(var j=[],h=0;h<8;h++){var l=(d[h]+g[h])>>>0;var n=l&65535,k=l>>>16;var b=((((n*n)>>>17)+n*k)>>>15)+k*k,m=(((l&4294901760)*l)>>>0)+(((l&65535)*l)>>>0)>>>0;j[h]=b^m}d[0]=j[0]+((j[7]<<16)|(j[7]>>>16))+((j[6]<<16)|(j[6]>>>16));d[1]=j[1]+((j[0]<<8)|(j[0]>>>24))+j[7];d[2]=j[2]+((j[1]<<16)|(j[1]>>>16))+((j[0]<<16)|(j[0]>>>16));d[3]=j[3]+((j[2]<<8)|(j[2]>>>24))+j[1];d[4]=j[4]+((j[3]<<16)|(j[3]>>>16))+((j[2]<<16)|(j[2]>>>16));d[5]=j[5]+((j[4]<<8)|(j[4]>>>24))+j[3];d[6]=j[6]+((j[5]<<16)|(j[5]>>>16))+((j[4]<<16)|(j[4]>>>16));d[7]=j[7]+((j[6]<<8)|(j[6]>>>24))+j[5]}}})();
\ No newline at end of file
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";window.Crypto={};var a=Crypto.util={rotl:function(d,c){return(d<<c)|(d>>>(32-c))},rotr:function(d,c){return(d<<(32-c))|(d>>>c)},endian:function(d){if(d.constructor==Number){return a.rotl(d,8)&16711935|a.rotl(d,24)&4278255360}for(var c=0;c<d.length;c++){d[c]=a.endian(d[c])}return d},randomBytes:function(d){for(var c=[];d>0;d--){c.push(Math.floor(Math.random()*256))}return c},stringToBytes:function(e){var c=[];for(var d=0;d<e.length;d++){c.push(e.charCodeAt(d))}return c},bytesToString:function(c){var e=[];for(var d=0;d<c.length;d++){e.push(String.fromCharCode(c[d]))}return e.join("")},stringToWords:function(f){var e=[];for(var g=0,d=0;g<f.length;g++,d+=8){e[d>>>5]|=f.charCodeAt(g)<<(24-d%32)}return e},bytesToWords:function(d){var f=[];for(var e=0,c=0;e<d.length;e++,c+=8){f[c>>>5]|=d[e]<<(24-c%32)}return f},wordsToBytes:function(e){var d=[];for(var c=0;c<e.length*32;c+=8){d.push((e[c>>>5]>>>(24-c%32))&255)}return d},bytesToHex:function(c){var e=[];for(var d=0;d<c.length;d++){e.push((c[d]>>>4).toString(16));e.push((c[d]&15).toString(16))}return e.join("")},hexToBytes:function(e){var d=[];for(var f=0;f<e.length;f+=2){d.push(parseInt(e.substr(f,2),16))}return d},bytesToBase64:function(d){if(typeof btoa=="function"){return btoa(a.bytesToString(d))}var c=[],f;for(var e=0;e<d.length;e++){switch(e%3){case 0:c.push(b.charAt(d[e]>>>2));f=(d[e]&3)<<4;break;case 1:c.push(b.charAt(f|(d[e]>>>4)));f=(d[e]&15)<<2;break;case 2:c.push(b.charAt(f|(d[e]>>>6)));c.push(b.charAt(d[e]&63));f=-1}}if(f!=undefined&&f!=-1){c.push(b.charAt(f))}while(c.length%4!=0){c.push("=")}return c.join("")},base64ToBytes:function(d){if(typeof atob=="function"){return a.stringToBytes(atob(d))}d=d.replace(/[^A-Z0-9+\/]/ig,"");var c=[];for(var e=0;e<d.length;e++){switch(e%4){case 1:c.push((b.indexOf(d.charAt(e-1))<<2)|(b.indexOf(d.charAt(e))>>>4));break;case 2:c.push(((b.indexOf(d.charAt(e-1))&15)<<4)|(b.indexOf(d.charAt(e))>>>2));break;case 3:c.push(((b.indexOf(d.charAt(e-1))&3)<<6)|(b.indexOf(d.charAt(e))));break}}return c}};Crypto.mode={}})();(function(){var a=Crypto.util;var b=Crypto.SHA1=function(e,c){var d=a.wordsToBytes(b._sha1(e));return c&&c.asBytes?d:c&&c.asString?a.bytesToString(d):a.bytesToHex(d)};b._sha1=function(k){var u=a.stringToWords(k),v=k.length*8,o=[],q=1732584193,p=-271733879,h=-1732584194,g=271733878,f=-1009589776;u[v>>5]|=128<<(24-v%32);u[((v+64>>>9)<<4)+15]=v;for(var y=0;y<u.length;y+=16){var D=q,C=p,B=h,A=g,z=f;for(var x=0;x<80;x++){if(x<16){o[x]=u[y+x]}else{var s=o[x-3]^o[x-8]^o[x-14]^o[x-16];o[x]=(s<<1)|(s>>>31)}var r=((q<<5)|(q>>>27))+f+(o[x]>>>0)+(x<20?(p&h|~p&g)+1518500249:x<40?(p^h^g)+1859775393:x<60?(p&h|p&g|h&g)-1894007588:(p^h^g)-899497514);f=g;g=h;h=(p<<30)|(p>>>2);p=q;q=r}q+=D;p+=C;h+=B;g+=A;f+=z}return[q,p,h,g,f]};b._blocksize=16})();(function(){var a=Crypto.util;Crypto.HMAC=function(g,h,f,d){f=f.length>g._blocksize*4?g(f,{asBytes:true}):a.stringToBytes(f);var c=f,j=f.slice(0);for(var e=0;e<g._blocksize*4;e++){c[e]^=92;j[e]^=54}var b=g(a.bytesToString(c)+g(a.bytesToString(j)+h,{asString:true}),{asBytes:true});return d&&d.asBytes?b:d&&d.asString?a.bytesToString(b):a.bytesToHex(b)}})();(function(){var a=Crypto.util;Crypto.PBKDF2=function(m,k,b,p){var o=p&&p.hasher||Crypto.SHA1,e=p&&p.iterations||1;function l(i,j){return Crypto.HMAC(o,j,i,{asBytes:true})}var d=[],c=1;while(d.length<b){var f=l(m,k+a.bytesToString(a.wordsToBytes([c])));for(var n=f,h=1;h<e;h++){n=l(m,a.bytesToString(n));for(var g=0;g<f.length;g++){f[g]^=n[g]}}d=d.concat(f);c++}d.length=b;return p&&p.asBytes?d:p&&p.asString?a.bytesToString(d):a.bytesToHex(d)}})();
\ No newline at end of file
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";window.Crypto={};var a=Crypto.util={rotl:function(d,c){return(d<<c)|(d>>>(32-c))},rotr:function(d,c){return(d<<(32-c))|(d>>>c)},endian:function(d){if(d.constructor==Number){return a.rotl(d,8)&16711935|a.rotl(d,24)&4278255360}for(var c=0;c<d.length;c++){d[c]=a.endian(d[c])}return d},randomBytes:function(d){for(var c=[];d>0;d--){c.push(Math.floor(Math.random()*256))}return c},stringToBytes:function(e){var c=[];for(var d=0;d<e.length;d++){c.push(e.charCodeAt(d))}return c},bytesToString:function(c){var e=[];for(var d=0;d<c.length;d++){e.push(String.fromCharCode(c[d]))}return e.join("")},stringToWords:function(f){var e=[];for(var g=0,d=0;g<f.length;g++,d+=8){e[d>>>5]|=f.charCodeAt(g)<<(24-d%32)}return e},bytesToWords:function(d){var f=[];for(var e=0,c=0;e<d.length;e++,c+=8){f[c>>>5]|=d[e]<<(24-c%32)}return f},wordsToBytes:function(e){var d=[];for(var c=0;c<e.length*32;c+=8){d.push((e[c>>>5]>>>(24-c%32))&255)}return d},bytesToHex:function(c){var e=[];for(var d=0;d<c.length;d++){e.push((c[d]>>>4).toString(16));e.push((c[d]&15).toString(16))}return e.join("")},hexToBytes:function(e){var d=[];for(var f=0;f<e.length;f+=2){d.push(parseInt(e.substr(f,2),16))}return d},bytesToBase64:function(d){if(typeof btoa=="function"){return btoa(a.bytesToString(d))}var c=[],f;for(var e=0;e<d.length;e++){switch(e%3){case 0:c.push(b.charAt(d[e]>>>2));f=(d[e]&3)<<4;break;case 1:c.push(b.charAt(f|(d[e]>>>4)));f=(d[e]&15)<<2;break;case 2:c.push(b.charAt(f|(d[e]>>>6)));c.push(b.charAt(d[e]&63));f=-1}}if(f!=undefined&&f!=-1){c.push(b.charAt(f))}while(c.length%4!=0){c.push("=")}return c.join("")},base64ToBytes:function(d){if(typeof atob=="function"){return a.stringToBytes(atob(d))}d=d.replace(/[^A-Z0-9+\/]/ig,"");var c=[];for(var e=0;e<d.length;e++){switch(e%4){case 1:c.push((b.indexOf(d.charAt(e-1))<<2)|(b.indexOf(d.charAt(e))>>>4));break;case 2:c.push(((b.indexOf(d.charAt(e-1))&15)<<4)|(b.indexOf(d.charAt(e))>>>2));break;case 3:c.push(((b.indexOf(d.charAt(e-1))&3)<<6)|(b.indexOf(d.charAt(e))));break}}return c}};Crypto.mode={}})();(function(){var a=Crypto.util;var b=Crypto.SHA1=function(e,c){var d=a.wordsToBytes(b._sha1(e));return c&&c.asBytes?d:c&&c.asString?a.bytesToString(d):a.bytesToHex(d)};b._sha1=function(k){var u=a.stringToWords(k),v=k.length*8,o=[],q=1732584193,p=-271733879,h=-1732584194,g=271733878,f=-1009589776;u[v>>5]|=128<<(24-v%32);u[((v+64>>>9)<<4)+15]=v;for(var y=0;y<u.length;y+=16){var D=q,C=p,B=h,A=g,z=f;for(var x=0;x<80;x++){if(x<16){o[x]=u[y+x]}else{var s=o[x-3]^o[x-8]^o[x-14]^o[x-16];o[x]=(s<<1)|(s>>>31)}var r=((q<<5)|(q>>>27))+f+(o[x]>>>0)+(x<20?(p&h|~p&g)+1518500249:x<40?(p^h^g)+1859775393:x<60?(p&h|p&g|h&g)-1894007588:(p^h^g)-899497514);f=g;g=h;h=(p<<30)|(p>>>2);p=q;q=r}q+=D;p+=C;h+=B;g+=A;f+=z}return[q,p,h,g,f]};b._blocksize=16})();
\ No newline at end of file
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";window.Crypto={};var a=Crypto.util={rotl:function(d,c){return(d<<c)|(d>>>(32-c))},rotr:function(d,c){return(d<<(32-c))|(d>>>c)},endian:function(d){if(d.constructor==Number){return a.rotl(d,8)&16711935|a.rotl(d,24)&4278255360}for(var c=0;c<d.length;c++){d[c]=a.endian(d[c])}return d},randomBytes:function(d){for(var c=[];d>0;d--){c.push(Math.floor(Math.random()*256))}return c},stringToBytes:function(e){var c=[];for(var d=0;d<e.length;d++){c.push(e.charCodeAt(d))}return c},bytesToString:function(c){var e=[];for(var d=0;d<c.length;d++){e.push(String.fromCharCode(c[d]))}return e.join("")},stringToWords:function(f){var e=[];for(var g=0,d=0;g<f.length;g++,d+=8){e[d>>>5]|=f.charCodeAt(g)<<(24-d%32)}return e},bytesToWords:function(d){var f=[];for(var e=0,c=0;e<d.length;e++,c+=8){f[c>>>5]|=d[e]<<(24-c%32)}return f},wordsToBytes:function(e){var d=[];for(var c=0;c<e.length*32;c+=8){d.push((e[c>>>5]>>>(24-c%32))&255)}return d},bytesToHex:function(c){var e=[];for(var d=0;d<c.length;d++){e.push((c[d]>>>4).toString(16));e.push((c[d]&15).toString(16))}return e.join("")},hexToBytes:function(e){var d=[];for(var f=0;f<e.length;f+=2){d.push(parseInt(e.substr(f,2),16))}return d},bytesToBase64:function(d){if(typeof btoa=="function"){return btoa(a.bytesToString(d))}var c=[],f;for(var e=0;e<d.length;e++){switch(e%3){case 0:c.push(b.charAt(d[e]>>>2));f=(d[e]&3)<<4;break;case 1:c.push(b.charAt(f|(d[e]>>>4)));f=(d[e]&15)<<2;break;case 2:c.push(b.charAt(f|(d[e]>>>6)));c.push(b.charAt(d[e]&63));f=-1}}if(f!=undefined&&f!=-1){c.push(b.charAt(f))}while(c.length%4!=0){c.push("=")}return c.join("")},base64ToBytes:function(d){if(typeof atob=="function"){return a.stringToBytes(atob(d))}d=d.replace(/[^A-Z0-9+\/]/ig,"");var c=[];for(var e=0;e<d.length;e++){switch(e%4){case 1:c.push((b.indexOf(d.charAt(e-1))<<2)|(b.indexOf(d.charAt(e))>>>4));break;case 2:c.push(((b.indexOf(d.charAt(e-1))&15)<<4)|(b.indexOf(d.charAt(e))>>>2));break;case 3:c.push(((b.indexOf(d.charAt(e-1))&3)<<6)|(b.indexOf(d.charAt(e))));break}}return c}};Crypto.mode={}})();(function(){var b=Crypto.util;var a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];var c=Crypto.SHA256=function(f,d){var e=b.wordsToBytes(c._sha256(f));return d&&d.asBytes?e:d&&d.asString?b.bytesToString(e):b.bytesToHex(e)};c._sha256=function(q){var y=b.stringToWords(q),z=q.length*8,r=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],s=[],K,J,I,G,F,E,D,C,B,A,p,o;y[z>>5]|=128<<(24-z%32);y[((z+64>>9)<<4)+15]=z;for(var B=0;B<y.length;B+=16){K=r[0];J=r[1];I=r[2];G=r[3];F=r[4];E=r[5];D=r[6];C=r[7];for(var A=0;A<64;A++){if(A<16){s[A]=y[A+B]}else{var n=s[A-15],u=s[A-2],M=((n<<25)|(n>>>7))^((n<<14)|(n>>>18))^(n>>>3),L=((u<<15)|(u>>>17))^((u<<13)|(u>>>19))^(u>>>10);s[A]=M+(s[A-7]>>>0)+L+(s[A-16]>>>0)}var t=F&E^~F&D,k=K&J^K&I^J&I,x=((K<<30)|(K>>>2))^((K<<19)|(K>>>13))^((K<<10)|(K>>>22)),v=((F<<26)|(F>>>6))^((F<<21)|(F>>>11))^((F<<7)|(F>>>25));p=(C>>>0)+v+t+(a[A])+(s[A]>>>0);o=x+k;C=D;D=E;E=F;F=G+p;G=I;I=J;J=K;K=p+o}r[0]+=K;r[1]+=J;r[2]+=I;r[3]+=G;r[4]+=F;r[5]+=E;r[6]+=D;r[7]+=C}return r};c._blocksize=16})();
\ No newline at end of file
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";window.Crypto={};var a=Crypto.util={rotl:function(d,c){return(d<<c)|(d>>>(32-c))},rotr:function(d,c){return(d<<(32-c))|(d>>>c)},endian:function(d){if(d.constructor==Number){return a.rotl(d,8)&16711935|a.rotl(d,24)&4278255360}for(var c=0;c<d.length;c++){d[c]=a.endian(d[c])}return d},randomBytes:function(d){for(var c=[];d>0;d--){c.push(Math.floor(Math.random()*256))}return c},stringToBytes:function(e){var c=[];for(var d=0;d<e.length;d++){c.push(e.charCodeAt(d))}return c},bytesToString:function(c){var e=[];for(var d=0;d<c.length;d++){e.push(String.fromCharCode(c[d]))}return e.join("")},stringToWords:function(f){var e=[];for(var g=0,d=0;g<f.length;g++,d+=8){e[d>>>5]|=f.charCodeAt(g)<<(24-d%32)}return e},bytesToWords:function(d){var f=[];for(var e=0,c=0;e<d.length;e++,c+=8){f[c>>>5]|=d[e]<<(24-c%32)}return f},wordsToBytes:function(e){var d=[];for(var c=0;c<e.length*32;c+=8){d.push((e[c>>>5]>>>(24-c%32))&255)}return d},bytesToHex:function(c){var e=[];for(var d=0;d<c.length;d++){e.push((c[d]>>>4).toString(16));e.push((c[d]&15).toString(16))}return e.join("")},hexToBytes:function(e){var d=[];for(var f=0;f<e.length;f+=2){d.push(parseInt(e.substr(f,2),16))}return d},bytesToBase64:function(d){if(typeof btoa=="function"){return btoa(a.bytesToString(d))}var c=[],f;for(var e=0;e<d.length;e++){switch(e%3){case 0:c.push(b.charAt(d[e]>>>2));f=(d[e]&3)<<4;break;case 1:c.push(b.charAt(f|(d[e]>>>4)));f=(d[e]&15)<<2;break;case 2:c.push(b.charAt(f|(d[e]>>>6)));c.push(b.charAt(d[e]&63));f=-1}}if(f!=undefined&&f!=-1){c.push(b.charAt(f))}while(c.length%4!=0){c.push("=")}return c.join("")},base64ToBytes:function(d){if(typeof atob=="function"){return a.stringToBytes(atob(d))}d=d.replace(/[^A-Z0-9+\/]/ig,"");var c=[];for(var e=0;e<d.length;e++){switch(e%4){case 1:c.push((b.indexOf(d.charAt(e-1))<<2)|(b.indexOf(d.charAt(e))>>>4));break;case 2:c.push(((b.indexOf(d.charAt(e-1))&15)<<4)|(b.indexOf(d.charAt(e))>>>2));break;case 3:c.push(((b.indexOf(d.charAt(e-1))&3)<<6)|(b.indexOf(d.charAt(e))));break}}return c}};Crypto.mode={}})();
\ No newline at end of file
/*!
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){
var base64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
// Global Crypto object
window.Crypto = {};
// Crypto utilities
var util = Crypto.util = {
// Bit-wise rotate left
rotl: function (n, b) {
return (n << b) | (n >>> (32 - b));
},
// Bit-wise rotate right
rotr: function (n, b) {
return (n << (32 - b)) | (n >>> b);
},
// Swap big-endian to little-endian and vice versa
endian: function (n) {
// If number given, swap endian
if (n.constructor == Number) {
return util.rotl(n, 8) & 0x00FF00FF |
util.rotl(n, 24) & 0xFF00FF00;
}
// Else, assume array and swap all items
for (var i = 0; i < n.length; i++)
n[i] = util.endian(n[i]);
return n;
},
// Generate an array of any length of random bytes
randomBytes: function (n) {
for (var bytes = []; n > 0; n--)
bytes.push(Math.floor(Math.random() * 256));
return bytes;
},
// Convert a string to a byte array
stringToBytes: function (str) {
var bytes = [];
for (var i = 0; i < str.length; i++)
bytes.push(str.charCodeAt(i));
return bytes;
},
// Convert a byte array to a string
bytesToString: function (bytes) {
var str = [];
for (var i = 0; i < bytes.length; i++)
str.push(String.fromCharCode(bytes[i]));
return str.join("");
},
// Convert a string to big-endian 32-bit words
stringToWords: function (str) {
var words = [];
for (var c = 0, b = 0; c < str.length; c++, b += 8)
words[b >>> 5] |= str.charCodeAt(c) << (24 - b % 32);
return words;
},
// Convert a byte array to big-endian 32-bits words
bytesToWords: function (bytes) {
var words = [];
for (var i = 0, b = 0; i < bytes.length; i++, b += 8)
words[b >>> 5] |= bytes[i] << (24 - b % 32);
return words;
},
// Convert big-endian 32-bit words to a byte array
wordsToBytes: function (words) {
var bytes = [];
for (var b = 0; b < words.length * 32; b += 8)
bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);
return bytes;
},
// Convert a byte array to a hex string
bytesToHex: function (bytes) {
var hex = [];
for (var i = 0; i < bytes.length; i++) {
hex.push((bytes[i] >>> 4).toString(16));
hex.push((bytes[i] & 0xF).toString(16));
}
return hex.join("");
},
// Convert a hex string to a byte array
hexToBytes: function (hex) {
var bytes = [];
for (var c = 0; c < hex.length; c += 2)
bytes.push(parseInt(hex.substr(c, 2), 16));
return bytes;
},
// Convert a byte array to a base-64 string
bytesToBase64: function (bytes) {
// Use browser-native function if it exists
if (typeof btoa == "function") return btoa(util.bytesToString(bytes));
var base64 = [],
overflow;
for (var i = 0; i < bytes.length; i++) {
switch (i % 3) {
case 0:
base64.push(base64map.charAt(bytes[i] >>> 2));
overflow = (bytes[i] & 0x3) << 4;
break;
case 1:
base64.push(base64map.charAt(overflow | (bytes[i] >>> 4)));
overflow = (bytes[i] & 0xF) << 2;
break;
case 2:
base64.push(base64map.charAt(overflow | (bytes[i] >>> 6)));
base64.push(base64map.charAt(bytes[i] & 0x3F));
overflow = -1;
}
}
// Encode overflow bits, if there are any
if (overflow != undefined && overflow != -1)
base64.push(base64map.charAt(overflow));
// Add padding
while (base64.length % 4 != 0) base64.push("=");
return base64.join("");
},
// Convert a base-64 string to a byte array
base64ToBytes: function (base64) {
// Use browser-native function if it exists
if (typeof atob == "function") return util.stringToBytes(atob(base64));
// Remove non-base-64 characters
base64 = base64.replace(/[^A-Z0-9+\/]/ig, "");
var bytes = [];
for (var i = 0; i < base64.length; i++) {
switch (i % 4) {
case 1:
bytes.push((base64map.indexOf(base64.charAt(i - 1)) << 2) |
(base64map.indexOf(base64.charAt(i)) >>> 4));
break;
case 2:
bytes.push(((base64map.indexOf(base64.charAt(i - 1)) & 0xF) << 4) |
(base64map.indexOf(base64.charAt(i)) >>> 2));
break;
case 3:
bytes.push(((base64map.indexOf(base64.charAt(i - 1)) & 0x3) << 6) |
(base64map.indexOf(base64.charAt(i))));
break;
}
}
return bytes;
}
};
// Crypto mode namespace
Crypto.mode = {};
})();
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var a=Crypto.util;Crypto.HMAC=function(g,h,f,d){f=f.length>g._blocksize*4?g(f,{asBytes:true}):a.stringToBytes(f);var c=f,j=f.slice(0);for(var e=0;e<g._blocksize*4;e++){c[e]^=92;j[e]^=54}var b=g(a.bytesToString(c)+g(a.bytesToString(j)+h,{asString:true}),{asBytes:true});return d&&d.asBytes?b:d&&d.asString?a.bytesToString(b):a.bytesToHex(b)}})();
\ No newline at end of file
/*!
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){
// Shortcut
var util = Crypto.util;
Crypto.HMAC = function (hasher, message, key, options) {
// Allow arbitrary length keys
key = key.length > hasher._blocksize * 4 ?
hasher(key, { asBytes: true }) :
util.stringToBytes(key);
// XOR keys with pad constants
var okey = key,
ikey = key.slice(0);
for (var i = 0; i < hasher._blocksize * 4; i++) {
okey[i] ^= 0x5C;
ikey[i] ^= 0x36;
}
var hmacbytes = hasher(util.bytesToString(okey) +
hasher(util.bytesToString(ikey) + message, { asString: true }),
{ asBytes: true });
return options && options.asBytes ? hmacbytes :
options && options.asString ? util.bytesToString(hmacbytes) :
util.bytesToHex(hmacbytes);
};
})();
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var a=Crypto.util;var b=Crypto.MARC4={encrypt:function(g,f){var c=a.stringToBytes(g),e=a.randomBytes(16),d=Crypto.PBKDF2(f,a.bytesToString(e),32,{asBytes:true});b._marc4(c,d,1536);return a.bytesToBase64(e.concat(c))},decrypt:function(g,f){var h=a.base64ToBytes(g),e=h.splice(0,16),d=Crypto.PBKDF2(f,a.bytesToString(e),32,{asBytes:true});b._marc4(h,d,1536);return a.bytesToString(h)},_marc4:function(c,f,e){var h,g,l,d;for(h=0,l=[];h<256;h++){l[h]=h}for(h=0,g=0;h<256;h++){g=(g+l[h]+f[h%f.length])%256;d=l[h];l[h]=l[g];l[g]=d}h=g=0;for(var f=0-e;f<c.length;f++){h=(h+1)%256;g=(g+l[h])%256;d=l[h];l[h]=l[g];l[g]=d;if(f<0){continue}c[f]^=l[(l[h]+l[g])%256]}}}})();
\ No newline at end of file
/*!
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){
// Shortcut
var util = Crypto.util;
var MARC4 = Crypto.MARC4 = {
/**
* Public API
*/
encrypt: function (message, password) {
var
// Convert to bytes
m = util.stringToBytes(message),
// Generate random IV
iv = util.randomBytes(16),
// Generate key
k = Crypto.PBKDF2(password, util.bytesToString(iv), 32, { asBytes: true });
// Encrypt
MARC4._marc4(m, k, 1536);
// Return ciphertext
return util.bytesToBase64(iv.concat(m));
},
decrypt: function (ciphertext, password) {
var
// Convert to bytes
c = util.base64ToBytes(ciphertext),
// Separate IV and message
iv = c.splice(0, 16),
// Generate key
k = Crypto.PBKDF2(password, util.bytesToString(iv), 32, { asBytes: true });
// Decrypt
MARC4._marc4(c, k, 1536);
// Return plaintext
return util.bytesToString(c);
},
/**
* Internal methods
*/
// The core
_marc4: function (m, k, drop) {
// State variables
var i, j, s, temp;
// Key setup
for (i = 0, s = []; i < 256; i++) s[i] = i;
for (i = 0, j = 0; i < 256; i++) {
j = (j + s[i] + k[i % k.length]) % 256;
// Swap
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
// Clear counters
i = j = 0;
// Encryption
for (var k = 0 - drop; k < m.length; k++) {
i = (i + 1) % 256;
j = (j + s[i]) % 256;
// Swap
temp = s[i];
s[i] = s[j];
s[j] = temp;
// Stop here if we're still dropping keystream
if (k < 0) continue;
// Encrypt
m[k] ^= s[(s[i] + s[j]) % 256];
}
}
};
})();
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var a=Crypto.util;var b=Crypto.MD5=function(e,c){var d=a.wordsToBytes(b._md5(e));return c&&c.asBytes?d:c&&c.asString?a.bytesToString(d):a.bytesToHex(d)};b._md5=function(s){var g=a.stringToWords(s),h=s.length*8,q=1732584193,p=-271733879,o=-1732584194,n=271733878;for(var j=0;j<g.length;j++){g[j]=((g[j]<<8)|(g[j]>>>24))&16711935|((g[j]<<24)|(g[j]>>>8))&4278255360}g[h>>>5]|=128<<(h%32);g[(((h+64)>>>9)<<4)+14]=h;for(var j=0;j<g.length;j+=16){var e=q,k=p,f=o,r=n;q=b._ff(q,p,o,n,g[j+0],7,-680876936);n=b._ff(n,q,p,o,g[j+1],12,-389564586);o=b._ff(o,n,q,p,g[j+2],17,606105819);p=b._ff(p,o,n,q,g[j+3],22,-1044525330);q=b._ff(q,p,o,n,g[j+4],7,-176418897);n=b._ff(n,q,p,o,g[j+5],12,1200080426);o=b._ff(o,n,q,p,g[j+6],17,-1473231341);p=b._ff(p,o,n,q,g[j+7],22,-45705983);q=b._ff(q,p,o,n,g[j+8],7,1770035416);n=b._ff(n,q,p,o,g[j+9],12,-1958414417);o=b._ff(o,n,q,p,g[j+10],17,-42063);p=b._ff(p,o,n,q,g[j+11],22,-1990404162);q=b._ff(q,p,o,n,g[j+12],7,1804603682);n=b._ff(n,q,p,o,g[j+13],12,-40341101);o=b._ff(o,n,q,p,g[j+14],17,-1502002290);p=b._ff(p,o,n,q,g[j+15],22,1236535329);q=b._gg(q,p,o,n,g[j+1],5,-165796510);n=b._gg(n,q,p,o,g[j+6],9,-1069501632);o=b._gg(o,n,q,p,g[j+11],14,643717713);p=b._gg(p,o,n,q,g[j+0],20,-373897302);q=b._gg(q,p,o,n,g[j+5],5,-701558691);n=b._gg(n,q,p,o,g[j+10],9,38016083);o=b._gg(o,n,q,p,g[j+15],14,-660478335);p=b._gg(p,o,n,q,g[j+4],20,-405537848);q=b._gg(q,p,o,n,g[j+9],5,568446438);n=b._gg(n,q,p,o,g[j+14],9,-1019803690);o=b._gg(o,n,q,p,g[j+3],14,-187363961);p=b._gg(p,o,n,q,g[j+8],20,1163531501);q=b._gg(q,p,o,n,g[j+13],5,-1444681467);n=b._gg(n,q,p,o,g[j+2],9,-51403784);o=b._gg(o,n,q,p,g[j+7],14,1735328473);p=b._gg(p,o,n,q,g[j+12],20,-1926607734);q=b._hh(q,p,o,n,g[j+5],4,-378558);n=b._hh(n,q,p,o,g[j+8],11,-2022574463);o=b._hh(o,n,q,p,g[j+11],16,1839030562);p=b._hh(p,o,n,q,g[j+14],23,-35309556);q=b._hh(q,p,o,n,g[j+1],4,-1530992060);n=b._hh(n,q,p,o,g[j+4],11,1272893353);o=b._hh(o,n,q,p,g[j+7],16,-155497632);p=b._hh(p,o,n,q,g[j+10],23,-1094730640);q=b._hh(q,p,o,n,g[j+13],4,681279174);n=b._hh(n,q,p,o,g[j+0],11,-358537222);o=b._hh(o,n,q,p,g[j+3],16,-722521979);p=b._hh(p,o,n,q,g[j+6],23,76029189);q=b._hh(q,p,o,n,g[j+9],4,-640364487);n=b._hh(n,q,p,o,g[j+12],11,-421815835);o=b._hh(o,n,q,p,g[j+15],16,530742520);p=b._hh(p,o,n,q,g[j+2],23,-995338651);q=b._ii(q,p,o,n,g[j+0],6,-198630844);n=b._ii(n,q,p,o,g[j+7],10,1126891415);o=b._ii(o,n,q,p,g[j+14],15,-1416354905);p=b._ii(p,o,n,q,g[j+5],21,-57434055);q=b._ii(q,p,o,n,g[j+12],6,1700485571);n=b._ii(n,q,p,o,g[j+3],10,-1894986606);o=b._ii(o,n,q,p,g[j+10],15,-1051523);p=b._ii(p,o,n,q,g[j+1],21,-2054922799);q=b._ii(q,p,o,n,g[j+8],6,1873313359);n=b._ii(n,q,p,o,g[j+15],10,-30611744);o=b._ii(o,n,q,p,g[j+6],15,-1560198380);p=b._ii(p,o,n,q,g[j+13],21,1309151649);q=b._ii(q,p,o,n,g[j+4],6,-145523070);n=b._ii(n,q,p,o,g[j+11],10,-1120210379);o=b._ii(o,n,q,p,g[j+2],15,718787259);p=b._ii(p,o,n,q,g[j+9],21,-343485551);q+=e;p+=k;o+=f;n+=r}return a.endian([q,p,o,n])};b._ff=function(g,f,l,j,e,i,h){var k=g+(f&l|~f&j)+(e>>>0)+h;return((k<<i)|(k>>>(32-i)))+f};b._gg=function(g,f,l,j,e,i,h){var k=g+(f&j|l&~j)+(e>>>0)+h;return((k<<i)|(k>>>(32-i)))+f};b._hh=function(g,f,l,j,e,i,h){var k=g+(f^l^j)+(e>>>0)+h;return((k<<i)|(k>>>(32-i)))+f};b._ii=function(g,f,l,j,e,i,h){var k=g+(l^(f|~j))+(e>>>0)+h;return((k<<i)|(k>>>(32-i)))+f};b._blocksize=16})();
\ No newline at end of file
/*!
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){
// Shortcut
var util = Crypto.util;
// Public API
var MD5 = Crypto.MD5 = function (message, options) {
var digestbytes = util.wordsToBytes(MD5._md5(message));
return options && options.asBytes ? digestbytes :
options && options.asString ? util.bytesToString(digestbytes) :
util.bytesToHex(digestbytes);
};
// The core
MD5._md5 = function (message) {
var m = util.stringToWords(message),
l = message.length * 8,
a = 1732584193,
b = -271733879,
c = -1732584194,
d = 271733878;
// Swap endian
for (var i = 0; i < m.length; i++) {
m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |
((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;
}
// Padding
m[l >>> 5] |= 0x80 << (l % 32);
m[(((l + 64) >>> 9) << 4) + 14] = l;
for (var i = 0; i < m.length; i += 16) {
var aa = a,
bb = b,
cc = c,
dd = d;
a = MD5._ff(a, b, c, d, m[i+ 0], 7, -680876936);
d = MD5._ff(d, a, b, c, m[i+ 1], 12, -389564586);
c = MD5._ff(c, d, a, b, m[i+ 2], 17, 606105819);
b = MD5._ff(b, c, d, a, m[i+ 3], 22, -1044525330);
a = MD5._ff(a, b, c, d, m[i+ 4], 7, -176418897);
d = MD5._ff(d, a, b, c, m[i+ 5], 12, 1200080426);
c = MD5._ff(c, d, a, b, m[i+ 6], 17, -1473231341);
b = MD5._ff(b, c, d, a, m[i+ 7], 22, -45705983);
a = MD5._ff(a, b, c, d, m[i+ 8], 7, 1770035416);
d = MD5._ff(d, a, b, c, m[i+ 9], 12, -1958414417);
c = MD5._ff(c, d, a, b, m[i+10], 17, -42063);
b = MD5._ff(b, c, d, a, m[i+11], 22, -1990404162);
a = MD5._ff(a, b, c, d, m[i+12], 7, 1804603682);
d = MD5._ff(d, a, b, c, m[i+13], 12, -40341101);
c = MD5._ff(c, d, a, b, m[i+14], 17, -1502002290);
b = MD5._ff(b, c, d, a, m[i+15], 22, 1236535329);
a = MD5._gg(a, b, c, d, m[i+ 1], 5, -165796510);
d = MD5._gg(d, a, b, c, m[i+ 6], 9, -1069501632);
c = MD5._gg(c, d, a, b, m[i+11], 14, 643717713);
b = MD5._gg(b, c, d, a, m[i+ 0], 20, -373897302);
a = MD5._gg(a, b, c, d, m[i+ 5], 5, -701558691);
d = MD5._gg(d, a, b, c, m[i+10], 9, 38016083);
c = MD5._gg(c, d, a, b, m[i+15], 14, -660478335);
b = MD5._gg(b, c, d, a, m[i+ 4], 20, -405537848);
a = MD5._gg(a, b, c, d, m[i+ 9], 5, 568446438);
d = MD5._gg(d, a, b, c, m[i+14], 9, -1019803690);
c = MD5._gg(c, d, a, b, m[i+ 3], 14, -187363961);
b = MD5._gg(b, c, d, a, m[i+ 8], 20, 1163531501);
a = MD5._gg(a, b, c, d, m[i+13], 5, -1444681467);
d = MD5._gg(d, a, b, c, m[i+ 2], 9, -51403784);
c = MD5._gg(c, d, a, b, m[i+ 7], 14, 1735328473);
b = MD5._gg(b, c, d, a, m[i+12], 20, -1926607734);
a = MD5._hh(a, b, c, d, m[i+ 5], 4, -378558);
d = MD5._hh(d, a, b, c, m[i+ 8], 11, -2022574463);
c = MD5._hh(c, d, a, b, m[i+11], 16, 1839030562);
b = MD5._hh(b, c, d, a, m[i+14], 23, -35309556);
a = MD5._hh(a, b, c, d, m[i+ 1], 4, -1530992060);
d = MD5._hh(d, a, b, c, m[i+ 4], 11, 1272893353);
c = MD5._hh(c, d, a, b, m[i+ 7], 16, -155497632);
b = MD5._hh(b, c, d, a, m[i+10], 23, -1094730640);
a = MD5._hh(a, b, c, d, m[i+13], 4, 681279174);
d = MD5._hh(d, a, b, c, m[i+ 0], 11, -358537222);
c = MD5._hh(c, d, a, b, m[i+ 3], 16, -722521979);
b = MD5._hh(b, c, d, a, m[i+ 6], 23, 76029189);
a = MD5._hh(a, b, c, d, m[i+ 9], 4, -640364487);
d = MD5._hh(d, a, b, c, m[i+12], 11, -421815835);
c = MD5._hh(c, d, a, b, m[i+15], 16, 530742520);
b = MD5._hh(b, c, d, a, m[i+ 2], 23, -995338651);
a = MD5._ii(a, b, c, d, m[i+ 0], 6, -198630844);
d = MD5._ii(d, a, b, c, m[i+ 7], 10, 1126891415);
c = MD5._ii(c, d, a, b, m[i+14], 15, -1416354905);
b = MD5._ii(b, c, d, a, m[i+ 5], 21, -57434055);
a = MD5._ii(a, b, c, d, m[i+12], 6, 1700485571);
d = MD5._ii(d, a, b, c, m[i+ 3], 10, -1894986606);
c = MD5._ii(c, d, a, b, m[i+10], 15, -1051523);
b = MD5._ii(b, c, d, a, m[i+ 1], 21, -2054922799);
a = MD5._ii(a, b, c, d, m[i+ 8], 6, 1873313359);
d = MD5._ii(d, a, b, c, m[i+15], 10, -30611744);
c = MD5._ii(c, d, a, b, m[i+ 6], 15, -1560198380);
b = MD5._ii(b, c, d, a, m[i+13], 21, 1309151649);
a = MD5._ii(a, b, c, d, m[i+ 4], 6, -145523070);
d = MD5._ii(d, a, b, c, m[i+11], 10, -1120210379);
c = MD5._ii(c, d, a, b, m[i+ 2], 15, 718787259);
b = MD5._ii(b, c, d, a, m[i+ 9], 21, -343485551);
a += aa;
b += bb;
c += cc;
d += dd;
}
return util.endian([a, b, c, d]);
};
// Auxiliary functions
MD5._ff = function (a, b, c, d, x, s, t) {
var n = a + (b & c | ~b & d) + (x >>> 0) + t;
return ((n << s) | (n >>> (32 - s))) + b;
};
MD5._gg = function (a, b, c, d, x, s, t) {
var n = a + (b & d | c & ~d) + (x >>> 0) + t;
return ((n << s) | (n >>> (32 - s))) + b;
};
MD5._hh = function (a, b, c, d, x, s, t) {
var n = a + (b ^ c ^ d) + (x >>> 0) + t;
return ((n << s) | (n >>> (32 - s))) + b;
};
MD5._ii = function (a, b, c, d, x, s, t) {
var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
return ((n << s) | (n >>> (32 - s))) + b;
};
// Package private blocksize
MD5._blocksize = 16;
})();
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){Crypto.mode.OFB={encrypt:a,decrypt:a};function a(c,b,d){var g=c._blocksize*4,f=d.slice(0);for(var e=0;e<b.length;e++){if(e%g==0){c._encryptblock(f,0)}b[e]^=f[e%g]}}})();
\ No newline at end of file
/*!
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){
// Public API
Crypto.mode.OFB = {
encrypt: OFB,
decrypt: OFB
};
// The mode function
function OFB(cipher, m, iv) {
var blockSizeInBytes = cipher._blocksize * 4,
keystream = iv.slice(0);
// Encrypt each byte
for (var i = 0; i < m.length; i++) {
// Generate keystream
if (i % blockSizeInBytes == 0)
cipher._encryptblock(keystream, 0);
// Encrypt byte
m[i] ^= keystream[i % blockSizeInBytes];
}
}
})();
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var a=Crypto.util;Crypto.PBKDF2=function(m,k,b,p){var o=p&&p.hasher||Crypto.SHA1,e=p&&p.iterations||1;function l(i,j){return Crypto.HMAC(o,j,i,{asBytes:true})}var d=[],c=1;while(d.length<b){var f=l(m,k+a.bytesToString(a.wordsToBytes([c])));for(var n=f,h=1;h<e;h++){n=l(m,a.bytesToString(n));for(var g=0;g<f.length;g++){f[g]^=n[g]}}d=d.concat(f);c++}d.length=b;return p&&p.asBytes?d:p&&p.asString?a.bytesToString(d):a.bytesToHex(d)}})();
\ No newline at end of file
/*!
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){
// Shortcut
var util = Crypto.util;
Crypto.PBKDF2 = function (password, salt, keylen, options) {
// Defaults
var hasher = options && options.hasher || Crypto.SHA1,
iterations = options && options.iterations || 1;
// Pseudo-random function
function PRF(password, salt) {
return Crypto.HMAC(hasher, salt, password, { asBytes: true });
}
// Generate key
var derivedKeyBytes = [],
blockindex = 1;
while (derivedKeyBytes.length < keylen) {
var block = PRF(password, salt + util.bytesToString(
util.wordsToBytes([blockindex])));
for (var u = block, i = 1; i < iterations; i++) {
u = PRF(password, util.bytesToString(u));
for (var j = 0; j < block.length; j++) block[j] ^= u[j];
}
derivedKeyBytes = derivedKeyBytes.concat(block);
blockindex++;
}
// Truncate excess bytes
derivedKeyBytes.length = keylen;
return options && options.asBytes ? derivedKeyBytes :
options && options.asString ? util.bytesToString(derivedKeyBytes) :
util.bytesToHex(derivedKeyBytes);
};
})();
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var e=Crypto.util;var d=[],g=[],a;var f=Crypto.Rabbit={encrypt:function(j,i){var b=e.stringToBytes(j),h=e.randomBytes(8),c=Crypto.PBKDF2(i,e.bytesToString(h),16,{asBytes:true});f._rabbit(b,c,e.bytesToWords(h));return e.bytesToBase64(h.concat(b))},decrypt:function(j,i){var l=e.base64ToBytes(j),h=l.splice(0,8),b=Crypto.PBKDF2(i,e.bytesToString(h),16,{asBytes:true});f._rabbit(l,b,e.bytesToWords(h));return e.bytesToString(l)},_rabbit:function(h,l,o){f._keysetup(l);if(o){f._ivsetup(o)}for(var q=[],p=0;p<h.length;p++){if(p%16==0){f._nextstate();q[0]=d[0]^(d[5]>>>16)^(d[3]<<16);q[1]=d[2]^(d[7]>>>16)^(d[5]<<16);q[2]=d[4]^(d[1]>>>16)^(d[7]<<16);q[3]=d[6]^(d[3]>>>16)^(d[1]<<16);for(var n=0;n<4;n++){q[n]=((q[n]<<8)|(q[n]>>>24))&16711935|((q[n]<<24)|(q[n]>>>8))&4278255360}for(var c=120;c>=0;c-=8){q[c/8]=(q[c>>>5]>>>(24-c%32))&255}}h[p]^=q[p%16]}},_keysetup:function(b){d[0]=b[0];d[2]=b[1];d[4]=b[2];d[6]=b[3];d[1]=(b[3]<<16)|(b[2]>>>16);d[3]=(b[0]<<16)|(b[3]>>>16);d[5]=(b[1]<<16)|(b[0]>>>16);d[7]=(b[2]<<16)|(b[1]>>>16);g[0]=e.rotl(b[2],16);g[2]=e.rotl(b[3],16);g[4]=e.rotl(b[0],16);g[6]=e.rotl(b[1],16);g[1]=(b[0]&4294901760)|(b[1]&65535);g[3]=(b[1]&4294901760)|(b[2]&65535);g[5]=(b[2]&4294901760)|(b[3]&65535);g[7]=(b[3]&4294901760)|(b[0]&65535);a=0;for(var c=0;c<4;c++){f._nextstate()}for(var c=0;c<8;c++){g[c]^=d[(c+4)&7]}},_ivsetup:function(b){var l=e.endian(b[0]),j=e.endian(b[1]),k=(l>>>16)|(j&4294901760),h=(j<<16)|(l&65535);g[0]^=l;g[1]^=k;g[2]^=j;g[3]^=h;g[4]^=l;g[5]^=k;g[6]^=j;g[7]^=h;for(var c=0;c<4;c++){f._nextstate()}},_nextstate:function(){for(var c=[],h=0;h<8;h++){c[h]=g[h]}g[0]=(g[0]+1295307597+a)>>>0;g[1]=(g[1]+3545052371+((g[0]>>>0)<(c[0]>>>0)?1:0))>>>0;g[2]=(g[2]+886263092+((g[1]>>>0)<(c[1]>>>0)?1:0))>>>0;g[3]=(g[3]+1295307597+((g[2]>>>0)<(c[2]>>>0)?1:0))>>>0;g[4]=(g[4]+3545052371+((g[3]>>>0)<(c[3]>>>0)?1:0))>>>0;g[5]=(g[5]+886263092+((g[4]>>>0)<(c[4]>>>0)?1:0))>>>0;g[6]=(g[6]+1295307597+((g[5]>>>0)<(c[5]>>>0)?1:0))>>>0;g[7]=(g[7]+3545052371+((g[6]>>>0)<(c[6]>>>0)?1:0))>>>0;a=(g[7]>>>0)<(c[7]>>>0)?1:0;for(var j=[],h=0;h<8;h++){var l=(d[h]+g[h])>>>0;var n=l&65535,k=l>>>16;var b=((((n*n)>>>17)+n*k)>>>15)+k*k,m=(((l&4294901760)*l)>>>0)+(((l&65535)*l)>>>0)>>>0;j[h]=b^m}d[0]=j[0]+((j[7]<<16)|(j[7]>>>16))+((j[6]<<16)|(j[6]>>>16));d[1]=j[1]+((j[0]<<8)|(j[0]>>>24))+j[7];d[2]=j[2]+((j[1]<<16)|(j[1]>>>16))+((j[0]<<16)|(j[0]>>>16));d[3]=j[3]+((j[2]<<8)|(j[2]>>>24))+j[1];d[4]=j[4]+((j[3]<<16)|(j[3]>>>16))+((j[2]<<16)|(j[2]>>>16));d[5]=j[5]+((j[4]<<8)|(j[4]>>>24))+j[3];d[6]=j[6]+((j[5]<<16)|(j[5]>>>16))+((j[4]<<16)|(j[4]>>>16));d[7]=j[7]+((j[6]<<8)|(j[6]>>>24))+j[5]}}})();
\ No newline at end of file
/*!
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){
// Shortcut
var util = Crypto.util;
// Inner state
var x = [],
c = [],
b;
var Rabbit = Crypto.Rabbit = {
/**
* Public API
*/
encrypt: function (message, password) {
var
// Convert to bytes
m = util.stringToBytes(message),
// Generate random IV
iv = util.randomBytes(8),
// Generate key
k = Crypto.PBKDF2(password, util.bytesToString(iv), 16, { asBytes: true });
// Encrypt
Rabbit._rabbit(m, k, util.bytesToWords(iv));
// Return ciphertext
return util.bytesToBase64(iv.concat(m));
},
decrypt: function (ciphertext, password) {
var
// Convert to bytes
c = util.base64ToBytes(ciphertext),
// Separate IV and message
iv = c.splice(0, 8),
// Generate key
k = Crypto.PBKDF2(password, util.bytesToString(iv), 16, { asBytes: true });
// Decrypt
Rabbit._rabbit(c, k, util.bytesToWords(iv));
// Return plaintext
return util.bytesToString(c);
},
/**
* Internal methods
*/
// Encryption/decryption scheme
_rabbit: function (m, k, iv) {
Rabbit._keysetup(k);
if (iv) Rabbit._ivsetup(iv);
for (var s = [], i = 0; i < m.length; i++) {
if (i % 16 == 0) {
// Iterate the system
Rabbit._nextstate();
// Generate 16 bytes of pseudo-random data
s[0] = x[0] ^ (x[5] >>> 16) ^ (x[3] << 16);
s[1] = x[2] ^ (x[7] >>> 16) ^ (x[5] << 16);
s[2] = x[4] ^ (x[1] >>> 16) ^ (x[7] << 16);
s[3] = x[6] ^ (x[3] >>> 16) ^ (x[1] << 16);
// Swap endian
for (var j = 0; j < 4; j++) {
s[j] = ((s[j] << 8) | (s[j] >>> 24)) & 0x00FF00FF |
((s[j] << 24) | (s[j] >>> 8)) & 0xFF00FF00;
}
// Convert words to bytes
for (var b = 120; b >= 0; b -= 8)
s[b / 8] = (s[b >>> 5] >>> (24 - b % 32)) & 0xFF;
}
m[i] ^= s[i % 16];
}
},
// Key setup scheme
_keysetup: function (k) {
// Generate initial state values
x[0] = k[0];
x[2] = k[1];
x[4] = k[2];
x[6] = k[3];
x[1] = (k[3] << 16) | (k[2] >>> 16);
x[3] = (k[0] << 16) | (k[3] >>> 16);
x[5] = (k[1] << 16) | (k[0] >>> 16);
x[7] = (k[2] << 16) | (k[1] >>> 16);
// Generate initial counter values
c[0] = util.rotl(k[2], 16);
c[2] = util.rotl(k[3], 16);
c[4] = util.rotl(k[0], 16);
c[6] = util.rotl(k[1], 16);
c[1] = (k[0] & 0xFFFF0000) | (k[1] & 0xFFFF);
c[3] = (k[1] & 0xFFFF0000) | (k[2] & 0xFFFF);
c[5] = (k[2] & 0xFFFF0000) | (k[3] & 0xFFFF);
c[7] = (k[3] & 0xFFFF0000) | (k[0] & 0xFFFF);
// Clear carry bit
b = 0;
// Iterate the system four times
for (var i = 0; i < 4; i++) Rabbit._nextstate();
// Modify the counters
for (var i = 0; i < 8; i++) c[i] ^= x[(i + 4) & 7];
},
// IV setup scheme
_ivsetup: function (iv) {
// Generate four subvectors
var i0 = util.endian(iv[0]),
i2 = util.endian(iv[1]),
i1 = (i0 >>> 16) | (i2 & 0xFFFF0000),
i3 = (i2 << 16) | (i0 & 0x0000FFFF);
// Modify counter values
c[0] ^= i0;
c[1] ^= i1;
c[2] ^= i2;
c[3] ^= i3;
c[4] ^= i0;
c[5] ^= i1;
c[6] ^= i2;
c[7] ^= i3;
// Iterate the system four times
for (var i = 0; i < 4; i++) Rabbit._nextstate();
},
// Next-state function
_nextstate: function () {
// Save old counter values
for (var c_old = [], i = 0; i < 8; i++) c_old[i] = c[i];
// Calculate new counter values
c[0] = (c[0] + 0x4D34D34D + b) >>> 0;
c[1] = (c[1] + 0xD34D34D3 + ((c[0] >>> 0) < (c_old[0] >>> 0) ? 1 : 0)) >>> 0;
c[2] = (c[2] + 0x34D34D34 + ((c[1] >>> 0) < (c_old[1] >>> 0) ? 1 : 0)) >>> 0;
c[3] = (c[3] + 0x4D34D34D + ((c[2] >>> 0) < (c_old[2] >>> 0) ? 1 : 0)) >>> 0;
c[4] = (c[4] + 0xD34D34D3 + ((c[3] >>> 0) < (c_old[3] >>> 0) ? 1 : 0)) >>> 0;
c[5] = (c[5] + 0x34D34D34 + ((c[4] >>> 0) < (c_old[4] >>> 0) ? 1 : 0)) >>> 0;
c[6] = (c[6] + 0x4D34D34D + ((c[5] >>> 0) < (c_old[5] >>> 0) ? 1 : 0)) >>> 0;
c[7] = (c[7] + 0xD34D34D3 + ((c[6] >>> 0) < (c_old[6] >>> 0) ? 1 : 0)) >>> 0;
b = (c[7] >>> 0) < (c_old[7] >>> 0) ? 1 : 0;
// Calculate the g-values
for (var g = [], i = 0; i < 8; i++) {
var gx = (x[i] + c[i]) >>> 0;
// Construct high and low argument for squaring
var ga = gx & 0xFFFF,
gb = gx >>> 16;
// Calculate high and low result of squaring
var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb,
gl = (((gx & 0xFFFF0000) * gx) >>> 0) + (((gx & 0x0000FFFF) * gx) >>> 0) >>> 0;
// High XOR low
g[i] = gh ^ gl;
}
// Calculate new state values
x[0] = g[0] + ((g[7] << 16) | (g[7] >>> 16)) + ((g[6] << 16) | (g[6] >>> 16));
x[1] = g[1] + ((g[0] << 8) | (g[0] >>> 24)) + g[7];
x[2] = g[2] + ((g[1] << 16) | (g[1] >>> 16)) + ((g[0] << 16) | (g[0] >>> 16));
x[3] = g[3] + ((g[2] << 8) | (g[2] >>> 24)) + g[1];
x[4] = g[4] + ((g[3] << 16) | (g[3] >>> 16)) + ((g[2] << 16) | (g[2] >>> 16));
x[5] = g[5] + ((g[4] << 8) | (g[4] >>> 24)) + g[3];
x[6] = g[6] + ((g[5] << 16) | (g[5] >>> 16)) + ((g[4] << 16) | (g[4] >>> 16));
x[7] = g[7] + ((g[6] << 8) | (g[6] >>> 24)) + g[5];
}
};
})();
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var a=Crypto.util;var b=Crypto.SHA1=function(e,c){var d=a.wordsToBytes(b._sha1(e));return c&&c.asBytes?d:c&&c.asString?a.bytesToString(d):a.bytesToHex(d)};b._sha1=function(k){var u=a.stringToWords(k),v=k.length*8,o=[],q=1732584193,p=-271733879,h=-1732584194,g=271733878,f=-1009589776;u[v>>5]|=128<<(24-v%32);u[((v+64>>>9)<<4)+15]=v;for(var y=0;y<u.length;y+=16){var D=q,C=p,B=h,A=g,z=f;for(var x=0;x<80;x++){if(x<16){o[x]=u[y+x]}else{var s=o[x-3]^o[x-8]^o[x-14]^o[x-16];o[x]=(s<<1)|(s>>>31)}var r=((q<<5)|(q>>>27))+f+(o[x]>>>0)+(x<20?(p&h|~p&g)+1518500249:x<40?(p^h^g)+1859775393:x<60?(p&h|p&g|h&g)-1894007588:(p^h^g)-899497514);f=g;g=h;h=(p<<30)|(p>>>2);p=q;q=r}q+=D;p+=C;h+=B;g+=A;f+=z}return[q,p,h,g,f]};b._blocksize=16})();
\ No newline at end of file
/*!
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){
// Shortcut
var util = Crypto.util;
// Public API
var SHA1 = Crypto.SHA1 = function (message, options) {
var digestbytes = util.wordsToBytes(SHA1._sha1(message));
return options && options.asBytes ? digestbytes :
options && options.asString ? util.bytesToString(digestbytes) :
util.bytesToHex(digestbytes);
};
// The core
SHA1._sha1 = function (message) {
var m = util.stringToWords(message),
l = message.length * 8,
w = [],
H0 = 1732584193,
H1 = -271733879,
H2 = -1732584194,
H3 = 271733878,
H4 = -1009589776;
// Padding
m[l >> 5] |= 0x80 << (24 - l % 32);
m[((l + 64 >>> 9) << 4) + 15] = l;
for (var i = 0; i < m.length; i += 16) {
var a = H0,
b = H1,
c = H2,
d = H3,
e = H4;
for (var j = 0; j < 80; j++) {
if (j < 16) w[j] = m[i + j];
else {
var n = w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16];
w[j] = (n << 1) | (n >>> 31);
}
var t = ((H0 << 5) | (H0 >>> 27)) + H4 + (w[j] >>> 0) + (
j < 20 ? (H1 & H2 | ~H1 & H3) + 1518500249 :
j < 40 ? (H1 ^ H2 ^ H3) + 1859775393 :
j < 60 ? (H1 & H2 | H1 & H3 | H2 & H3) - 1894007588 :
(H1 ^ H2 ^ H3) - 899497514);
H4 = H3;
H3 = H2;
H2 = (H1 << 30) | (H1 >>> 2);
H1 = H0;
H0 = t;
}
H0 += a;
H1 += b;
H2 += c;
H3 += d;
H4 += e;
}
return [H0, H1, H2, H3, H4];
};
// Package private blocksize
SHA1._blocksize = 16;
})();
/*
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){var b=Crypto.util;var a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];var c=Crypto.SHA256=function(f,d){var e=b.wordsToBytes(c._sha256(f));return d&&d.asBytes?e:d&&d.asString?b.bytesToString(e):b.bytesToHex(e)};c._sha256=function(q){var y=b.stringToWords(q),z=q.length*8,r=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],s=[],K,J,I,G,F,E,D,C,B,A,p,o;y[z>>5]|=128<<(24-z%32);y[((z+64>>9)<<4)+15]=z;for(var B=0;B<y.length;B+=16){K=r[0];J=r[1];I=r[2];G=r[3];F=r[4];E=r[5];D=r[6];C=r[7];for(var A=0;A<64;A++){if(A<16){s[A]=y[A+B]}else{var n=s[A-15],u=s[A-2],M=((n<<25)|(n>>>7))^((n<<14)|(n>>>18))^(n>>>3),L=((u<<15)|(u>>>17))^((u<<13)|(u>>>19))^(u>>>10);s[A]=M+(s[A-7]>>>0)+L+(s[A-16]>>>0)}var t=F&E^~F&D,k=K&J^K&I^J&I,x=((K<<30)|(K>>>2))^((K<<19)|(K>>>13))^((K<<10)|(K>>>22)),v=((F<<26)|(F>>>6))^((F<<21)|(F>>>11))^((F<<7)|(F>>>25));p=(C>>>0)+v+t+(a[A])+(s[A]>>>0);o=x+k;C=D;D=E;E=F;F=G+p;G=I;I=J;J=K;K=p+o}r[0]+=K;r[1]+=J;r[2]+=I;r[3]+=G;r[4]+=F;r[5]+=E;r[6]+=D;r[7]+=C}return r};c._blocksize=16})();
\ No newline at end of file
/*!
* Crypto-JS v1.1.0
* http://code.google.com/p/crypto-js/
* Copyright (c) 2009, Jeff Mott. All rights reserved.
* http://code.google.com/p/crypto-js/wiki/License
*/
(function(){
// Shortcut
var util = Crypto.util;
// Constants
var K = [ 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,
0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,
0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,
0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,
0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,
0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,
0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,
0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,
0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2 ];
// Public API
var SHA256 = Crypto.SHA256 = function (message, options) {
var digestbytes = util.wordsToBytes(SHA256._sha256(message));
return options && options.asBytes ? digestbytes :
options && options.asString ? util.bytesToString(digestbytes) :
util.bytesToHex(digestbytes);
};
// The core
SHA256._sha256 = function (message) {
var m = util.stringToWords(message),
l = message.length * 8,
H = [ 0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A,
0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19 ],
w = [],
a, b, c, d, e, f, g, h, i, j,
t1, t2;
// Padding
m[l >> 5] |= 0x80 << (24 - l % 32);
m[((l + 64 >> 9) << 4) + 15] = l;
for (var i = 0; i < m.length; i += 16) {
a = H[0];
b = H[1];
c = H[2];
d = H[3];
e = H[4];
f = H[5];
g = H[6];
h = H[7];
for (var j = 0; j < 64; j++) {
if (j < 16) w[j] = m[j + i];
else {
var gamma0x = w[j - 15],
gamma1x = w[j - 2],
gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^
((gamma0x << 14) | (gamma0x >>> 18)) ^
(gamma0x >>> 3),
gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^
((gamma1x << 13) | (gamma1x >>> 19)) ^
(gamma1x >>> 10);
w[j] = gamma0 + (w[j - 7] >>> 0) +
gamma1 + (w[j - 16] >>> 0);
}
var ch = e & f ^ ~e & g,
maj = a & b ^ a & c ^ b & c,
sigma0 = ((a << 30) | (a >>> 2)) ^
((a << 19) | (a >>> 13)) ^
((a << 10) | (a >>> 22)),
sigma1 = ((e << 26) | (e >>> 6)) ^
((e << 21) | (e >>> 11)) ^
((e << 7) | (e >>> 25));
t1 = (h >>> 0) + sigma1 + ch + (K[j]) + (w[j] >>> 0);
t2 = sigma0 + maj;
h = g;
g = f;
f = e;
e = d + t1;
d = c;
c = b;
b = a;
a = t1 + t2;
}
H[0] += a;
H[1] += b;
H[2] += c;
H[3] += d;
H[4] += e;
H[5] += f;
H[6] += g;
H[7] += h;
}
return H;
};
// Package private blocksize
SHA256._blocksize = 16;
})();
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<title></title>
<script src="./jquery.min.js"></script>
<style type="text/css">.spinner{margin:210px auto;width:20px;height:20px;position:relative;}.container1 > div,.container2 > div,.container3 > div{width:6px;height:6px;background-color:#333;border-radius:100%;position:absolute;-webkit-animation:bouncedelay 1.2s infinite ease-in-out;animation:bouncedelay 1.2s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both;}.spinner .spinner-container{position:absolute;width:100%;height:100%;}.container2{-webkit-transform:rotateZ(45deg);transform:rotateZ(45deg);}.container3{-webkit-transform:rotateZ(90deg);transform:rotateZ(90deg);}.circle1{top:0;left:0;}.circle2{top:0;right:0;}.circle3{right:0;bottom:0;}.circle4{left:0;bottom:0;}.container2 .circle1{-webkit-animation-delay:-1.1s;animation-delay:-1.1s;}.container3 .circle1{-webkit-animation-delay:-1.0s;animation-delay:-1.0s;}.container1 .circle2{-webkit-animation-delay:-0.9s;animation-delay:-0.9s;}.container2 .circle2{-webkit-animation-delay:-0.8s;animation-delay:-0.8s;}.container3 .circle2{-webkit-animation-delay:-0.7s;animation-delay:-0.7s;}.container1 .circle3{-webkit-animation-delay:-0.6s;animation-delay:-0.6s;}.container2 .circle3{-webkit-animation-delay:-0.5s;animation-delay:-0.5s;}.container3 .circle3{-webkit-animation-delay:-0.4s;animation-delay:-0.4s;}.container1 .circle4{-webkit-animation-delay:-0.3s;animation-delay:-0.3s;}.container2 .circle4{-webkit-animation-delay:-0.2s;animation-delay:-0.2s;}.container3 .circle4{-webkit-animation-delay:-0.1s;animation-delay:-0.1s;}@-webkit-keyframes bouncedelay{0%,80%,100%{-webkit-transform:scale(0.0)}40%{-webkit-transform:scale(1.0)}}@keyframes bouncedelay{0%,80%,100%{transform:scale(0.0);-webkit-transform:scale(0.0);}40%{transform:scale(1.0);-webkit-transform:scale(1.0);}} </style>
</head>
<body id="body">
<div class="spinner"><div class="spinner-container container1"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div><div class="spinner-container container2"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div><div class="spinner-container container3"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div></div>
<script src="./transfer.js"></script>
</body>
</html>
$(function() {
let comGetLocation={
//code
getCompanyCode() {
let pathname = location.pathname;
return pathname.split("/")[1];
},
//sit code
getSiteCode() {
let pathname = location.pathname;
return pathname.split("/")[2];
},
//compan + sit
getRouterBefore() {
let pathname = location.pathname;
return "/" + pathname.split("/")[1] + "/" + pathname.split("/")[2];
},
//reject
getRouterDetail() {
let pathname = location.pathname;
return "/" + pathname.split("/")[3] + "/" + pathname.split("/")[4];
},
//hash parm
getUrlParam(query) {
var search = location.search;
if (location.search.indexOf("?") == -1) {
return '';
}
var queryString = search.split("?")[1];
if (queryString.indexOf("&&") != -1) {
var arr = queryString.split("&&");
for (let i = 0; i < arr.length; i++) {
if (arr[i].indexOf(query) != -1) {
return arr[i].split(["=",1]).join();
}
}
}else if (queryString.indexOf("&") != -1) {
// split
var arr = queryString.split("&");
for (let i = 0; i < arr.length; i++) {
if (arr[i].indexOf(query) != -1) {
return arr[i].split(query+"=")[1];
}
}
} else if (queryString.indexOf("=") != -1) {
if (queryString.indexOf(query) != -1) {
return queryString.split("=")[1];
}
} else {
return '';
}
},
getUrl() {
var search = location.search;
var queryString = search.split("*")[2];
if(queryString){
return queryString;
} else {
return '';
}
}
};
function getAuthorization(parms,href_url,companyCode,siteCode) {
var data={
...parms
};
var origin= location.origin;
$.ajax({
type: "post",
url: origin+"/system/public/api/outside/ebscn/oa/pc/login?companyCode=" + companyCode + "&siteCode=" + siteCode,
// url: origin+"/system/public/api/outside/ebscn/oa/pc/login?companyCode=" + 'ebscn' + "&siteCode=" + "jjrxxzx",
async: true,
dataType: "json",
contentType: 'application/json;charset=UTF-8',
data:JSON.stringify(data),
success: function (res) {
if (res.code == 1000) {
$("#erro_wrap").html("<span style='color: red'>接口请求成功:</span>")
//token
sessionStorage.setItem("token", res.data.Authorization);
sessionStorage.setItem("accountId", res.data.userInfo.id);
sessionStorage.setItem("orgId", res.data.userInfo.orgId);
sessionStorage.setItem("headPortrait", res.data.userInfo.headPortrait);
sessionStorage.setItem("fullname", res.data.userInfo.fullName);
sessionStorage.setItem("username", res.data.userInfo.username);
sessionStorage.setItem("siteName", res.data.userInfo.siteName);
$("#erro_wrap").html("<span style='color: red'>接口请求成功替换跳转:</span>");
location.replace(href_url);
$("#erro_wrap").html("<span style='color: red'>接口请求成功替换跳转失败:</span>")
}else {
alert(JSON.stringify(res.subMsg));
$("#erro_wrap").html("<span style='color: red'>错误信息:</span>"+res.subMsg)
}
},
error:function (err) {
$("#erro_wrap").html("<span style='color: red'>错误信息:</span>")
alert(JSON.stringify(err));
}
});
};
let appId = comGetLocation.getUrlParam("appId");
let userName = comGetLocation.getUrlParam("UserID");//userName
let sign = comGetLocation.getUrlParam("Token");//sigin
let url = comGetLocation.getUrlParam("url");
let companyCode= comGetLocation.getUrlParam("companyCode");
let siteCode= comGetLocation.getUrlParam("siteCode");
var data = {userName,sign,appId}
getAuthorization(data,url,companyCode,siteCode);
});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<G;t+=2){var e=$[t],n=$[t+1];e(n),$[t]=void 0,$[t+1]=void 0}G=0}function f(){try{var t=require,e=t("vertx");return H=e.runOnLoop||e.runOnContext,i()}catch(n){return c()}}function l(t,e){var n=arguments,r=this,o=new this.constructor(p);void 0===o[et]&&k(o);var i=r._state;return i?!function(){var t=n[i-1];J(function(){return x(i,o,t,r._result)})}():E(r,o,t,e),o}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return it.error=e,it}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){J(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===rt?S(t,e._result):e._state===ot?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===it?(j(t,it.error),it.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===nt&&(t._result=e,t._state=rt,0!==t._subscribers.length&&J(T,t))}function j(t,e){t._state===nt&&(t._state=ot,t._result=e,J(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+rt]=n,o[i+ot]=r,0===i&&t._state&&J(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?x(n,r,o,i):o(i);t._subscribers.length=0}}function M(){this.error=null}function P(t,e){try{return t(e)}catch(n){return st.error=n,st}}function x(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=P(r,o),s===st?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==nt||(i&&c?g(n,s):a?j(n,u):t===rt?S(n,s):t===ot&&j(n,s))}function C(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function O(){return ut++}function k(t){t[et]=ut++,t._state=void 0,t._result=void 0,t._subscribers=[]}function Y(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[et]||k(this.promise),B(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,q())}function q(){return new Error("Array Methods must be provided an Array")}function F(t){return new Y(this,t).promise}function D(t){var e=this;return new e(B(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function K(t){var e=this,n=new e(p);return j(n,t),n}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function N(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function U(t){this[et]=O(),this._result=this._state=void 0,this._subscribers=[],p!==t&&("function"!=typeof t&&L(),this instanceof U?C(this,t):N())}function W(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=U}var z=void 0;z=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var B=z,G=0,H=void 0,I=void 0,J=function(t,e){$[G]=t,$[G+1]=e,G+=2,2===G&&(I?I(a):tt())},Q="undefined"!=typeof window?window:void 0,R=Q||{},V=R.MutationObserver||R.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Z="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,$=new Array(1e3),tt=void 0;tt=X?o():V?s():Z?u():void 0===Q&&"function"==typeof require?f():c();var et=Math.random().toString(36).substring(16),nt=void 0,rt=1,ot=2,it=new M,st=new M,ut=0;return Y.prototype._enumerate=function(t){for(var e=0;this._state===nt&&e<t.length;e++)this._eachEntry(t[e],e)},Y.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==nt)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},Y.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===nt&&(this._remaining--,t===ot?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},Y.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(rt,e,t)},function(t){return n._settledAt(ot,e,t)})},U.all=F,U.race=D,U.resolve=h,U.reject=K,U._setScheduler=n,U._setAsap=r,U._asap=J,U.prototype={constructor:U,then:l,"catch":function(t){return this.then(null,t)}},U.polyfill=W,U.Promise=U,U.polyfill(),U});
\ No newline at end of file
/**高清方案
*
* 源文件:https://os.alipayobjects.com/rmsportal/lvEQQbNgHsIxVfXLkmuX.js
*
* **/
window.devicePixelRatio = 2;
!function (e) {
function t(a) {
if (i[a]) return i[a].exports;
var n = i[a] = {exports: {}, id: a, loaded: !1};
return e[a].call(n.exports, n, n.exports, t), n.loaded = !0, n.exports
}
var i = {};
return t.m = e, t.c = i, t.p = "", t(0)
}([function (e, t) {
"use strict";
Object.defineProperty(t, "__esModule", {value: !0});
var i = window;
t["default"] = i.flex = function (e, t) {
var a = e || 100, n = t || 1, r = i.document, o = navigator.userAgent,
d = o.match(/Android[\S\s]+AppleWebkit\/(\d{3})/i), l = o.match(/U3\/((\d+|\.){5,})/i),
c = l && parseInt(l[1].split(".").join(""), 10) >= 80,
p = navigator.appVersion.match(/(iphone|ipad|ipod)/gi), s = i.devicePixelRatio || 1;
p || d && d[1] > 534 || c || (s = 1);
var u = 1 / s, m = r.querySelector('meta[name="viewport"]');
m || (m = r.createElement("meta"), m.setAttribute("name", "viewport"), r.head.appendChild(m)), m.setAttribute("content", "width=device-width,user-scalable=no,initial-scale=" + u + ",maximum-scale=" + u + ",minimum-scale=" + u), r.documentElement.style.fontSize = a / 2 * s * n + "px"
}, e.exports = t["default"]
}]);
flex(100, 1);
\ No newline at end of file
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<title></title>
<script src="./pcTransfer/jquery.min.js"></script>
<style type="text/css">.spinner{margin:210px auto;width:20px;height:20px;position:relative;}.container1 > div,.container2 > div,.container3 > div{width:6px;height:6px;background-color:#333;border-radius:100%;position:absolute;-webkit-animation:bouncedelay 1.2s infinite ease-in-out;animation:bouncedelay 1.2s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both;}.spinner .spinner-container{position:absolute;width:100%;height:100%;}.container2{-webkit-transform:rotateZ(45deg);transform:rotateZ(45deg);}.container3{-webkit-transform:rotateZ(90deg);transform:rotateZ(90deg);}.circle1{top:0;left:0;}.circle2{top:0;right:0;}.circle3{right:0;bottom:0;}.circle4{left:0;bottom:0;}.container2 .circle1{-webkit-animation-delay:-1.1s;animation-delay:-1.1s;}.container3 .circle1{-webkit-animation-delay:-1.0s;animation-delay:-1.0s;}.container1 .circle2{-webkit-animation-delay:-0.9s;animation-delay:-0.9s;}.container2 .circle2{-webkit-animation-delay:-0.8s;animation-delay:-0.8s;}.container3 .circle2{-webkit-animation-delay:-0.7s;animation-delay:-0.7s;}.container1 .circle3{-webkit-animation-delay:-0.6s;animation-delay:-0.6s;}.container2 .circle3{-webkit-animation-delay:-0.5s;animation-delay:-0.5s;}.container3 .circle3{-webkit-animation-delay:-0.4s;animation-delay:-0.4s;}.container1 .circle4{-webkit-animation-delay:-0.3s;animation-delay:-0.3s;}.container2 .circle4{-webkit-animation-delay:-0.2s;animation-delay:-0.2s;}.container3 .circle4{-webkit-animation-delay:-0.1s;animation-delay:-0.1s;}@-webkit-keyframes bouncedelay{0%,80%,100%{-webkit-transform:scale(0.0)}40%{-webkit-transform:scale(1.0)}}@keyframes bouncedelay{0%,80%,100%{transform:scale(0.0);-webkit-transform:scale(0.0);}40%{transform:scale(1.0);-webkit-transform:scale(1.0);}} </style>
</head>
<body id="body">
<div class="spinner" id="erro_wrap"><div class="spinner-container container1"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div><div class="spinner-container container2"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div><div class="spinner-container container3"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div></div>
<script src="./pcTransfer/rjtransfer.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<title></title>
<script src="./pcTransfer/jquery.min.js"></script>
<style type="text/css">.spinner{margin:210px auto;width:20px;height:20px;position:relative;}.container1 > div,.container2 > div,.container3 > div{width:6px;height:6px;background-color:#333;border-radius:100%;position:absolute;-webkit-animation:bouncedelay 1.2s infinite ease-in-out;animation:bouncedelay 1.2s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both;}.spinner .spinner-container{position:absolute;width:100%;height:100%;}.container2{-webkit-transform:rotateZ(45deg);transform:rotateZ(45deg);}.container3{-webkit-transform:rotateZ(90deg);transform:rotateZ(90deg);}.circle1{top:0;left:0;}.circle2{top:0;right:0;}.circle3{right:0;bottom:0;}.circle4{left:0;bottom:0;}.container2 .circle1{-webkit-animation-delay:-1.1s;animation-delay:-1.1s;}.container3 .circle1{-webkit-animation-delay:-1.0s;animation-delay:-1.0s;}.container1 .circle2{-webkit-animation-delay:-0.9s;animation-delay:-0.9s;}.container2 .circle2{-webkit-animation-delay:-0.8s;animation-delay:-0.8s;}.container3 .circle2{-webkit-animation-delay:-0.7s;animation-delay:-0.7s;}.container1 .circle3{-webkit-animation-delay:-0.6s;animation-delay:-0.6s;}.container2 .circle3{-webkit-animation-delay:-0.5s;animation-delay:-0.5s;}.container3 .circle3{-webkit-animation-delay:-0.4s;animation-delay:-0.4s;}.container1 .circle4{-webkit-animation-delay:-0.3s;animation-delay:-0.3s;}.container2 .circle4{-webkit-animation-delay:-0.2s;animation-delay:-0.2s;}.container3 .circle4{-webkit-animation-delay:-0.1s;animation-delay:-0.1s;}@-webkit-keyframes bouncedelay{0%,80%,100%{-webkit-transform:scale(0.0)}40%{-webkit-transform:scale(1.0)}}@keyframes bouncedelay{0%,80%,100%{transform:scale(0.0);-webkit-transform:scale(0.0);}40%{transform:scale(1.0);-webkit-transform:scale(1.0);}} </style>
</head>
<body id="body">
<div class="spinner"><div class="spinner-container container1"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div><div class="spinner-container container2"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div><div class="spinner-container container3"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div></div>
<script src="./pcTransfer/transfer.js"></script>
</body>
</html>
// 1.计算加载时间
function getPerformanceTiming() {
var performance = window.performance;
if (!performance) {
// 当前浏览器不支持
console.log('你的浏览器不支持 performance 接口');
return;
}
var t = performance.timing;
var times = {};
//【重要】页面加载完成的时间
//【原因】这几乎代表了用户等待页面可用的时间
times.loadPage = t.loadEventEnd - t.navigationStart;
//【重要】解析 DOM 树结构的时间
//【原因】反省下你的 DOM 树嵌套是不是太多了!
times.domReady = t.domComplete - t.responseEnd;
//【重要】重定向的时间
//【原因】拒绝重定向!比如,http://example.com/ 就不该写成 http://example.com
times.redirect = t.redirectEnd - t.redirectStart;
//【重要】DNS 查询时间
//【原因】DNS 预加载做了么?页面内是不是使用了太多不同的域名导致域名查询的时间太长?
// 可使用 HTML5 Prefetch 预查询 DNS ,见:[HTML5 prefetch](http://segmentfault.com/a/1190000000633364)
times.lookupDomain = t.domainLookupEnd - t.domainLookupStart;
//【重要】读取页面第一个字节的时间
//【原因】这可以理解为用户拿到你的资源占用的时间,加异地机房了么,加CDN 处理了么?加带宽了么?加 CPU 运算速度了么?
// TTFB 即 Time To First Byte 的意思
// 维基百科:https://en.wikipedia.org/wiki/Time_To_First_Byte
times.ttfb = t.responseStart - t.navigationStart;
//【重要】内容加载完成的时间
//【原因】页面内容经过 gzip 压缩了么,静态资源 css/js 等压缩了么?
times.request = t.responseEnd - t.requestStart;
//【重要】执行 onload 回调函数的时间
//【原因】是否太多不必要的操作都放到 onload 回调函数里执行了,考虑过延迟加载、按需加载的策略么?
times.loadEvent = t.loadEventEnd - t.loadEventStart;
// DNS 缓存时间
times.appcache = t.domainLookupStart - t.fetchStart;
// 卸载页面的时间
times.unloadEvent = t.unloadEventEnd - t.unloadEventStart;
// TCP 建立连接完成握手的时间
times.connect = t.connectEnd - t.connectStart;
return times;
}
// 2.计算加载时间
function getEntryTiming(entry) {
var t = entry;
var times = {};
// 重定向的时间
times.redirect = t.redirectEnd - t.redirectStart;
// DNS 查询时间
times.lookupDomain = t.domainLookupEnd - t.domainLookupStart;
// 内容加载完成的时间
times.request = t.responseEnd - t.requestStart;
// TCP 建立连接完成握手的时间
times.connect = t.connectEnd - t.connectStart;
// 挂载 entry 返回
times.name = entry.name;
times.entryType = entry.entryType;
times.initiatorType = entry.initiatorType;
times.duration = entry.duration;
return times;
}
// 例如:
function entriesTimes() {
var entries = window.performance.getEntries();//这个函数返回的将是一个数组,包含了页面中所有的 HTTP 请求
entries.forEach(function (entry) {
var times = getEntryTiming(entry);
console.log(times);
});
}
entriesTimes()
$(function() {
let comGetLocation={
//hash parm
getUrlParam() {
var search = location.search;
if (location.search.indexOf("?") == -1) {
return '';
}
var queryString = search.split("?")[1];
if (queryString.indexOf("&") != -1) {
var data={};
var arr = queryString.split("&"); // split
arr.map((item)=>{
data[item.split("=")[0]]=item.substring(item.indexOf("=")+1)
})
return data;
}else {
return '';
}
}
};
function getAuthorization(parms,href_url) {
if(!parms.md5nm){
alert("login_name没有找到")
return;
}
console.log(href_url,"url")
let {appId,mp,companyCode,siteCode,md5nm,token,salt,sign}= parms;
// console.log(appId,'appid');
// console.log(mp,'mp');
// console.log(appId,'appid');
// console.log(companyCode,'companyCode');
// console.log(siteCode,'siteCode');
// console.log(md5nm,'md5nm');
// console.log(token,'token');
// console.log(salt,'salt');
// console.log(sign,'sign');
// md5nm -->name ,mp -> terminalType,hrefUrl
var data={appId,name:md5nm,token,salt,sign,hrefUrl:href_url,type:parms.authType?parms.authType:1};
if(parms.mp==1||parms.mp==0){
data.terminalType=3;
}else{
data.terminalType=parms.mp;
}
var origin= location.origin;
$.ajax({
type: "post",
url: origin+"/system/public/api/plus/getAccount?companyCode=" + companyCode + "&siteCode=" + siteCode,
async: true,
dataType: "json",
contentType: 'application/json;charset=UTF-8',
data:JSON.stringify(data),
success: function (res) {
if (res.code == 1000) {
//token
sessionStorage.setItem("token", res.data.Authorization);
sessionStorage.setItem("accountId", res.data.userInfo.id);
sessionStorage.setItem("orgId", res.data.userInfo.orgId);
sessionStorage.setItem("headPortrait", res.data.userInfo.headPortrait);
sessionStorage.setItem("fullname", res.data.userInfo.fullName);
sessionStorage.setItem("username", res.data.userInfo.username);
sessionStorage.setItem("siteName", res.data.userInfo.siteName);
href_url=decodeURIComponent(href_url);
location.replace(href_url);
}else {
$("#body").html("<span style='color: red'>错误信息:</span>"+JSON.stringify(res))
}
},
error:function (err) {
$("#body").html(`<span style='color: red'>错误信息:${JSON.stringify(err)}</span>`)
}
});
};
let datas= comGetLocation.getUrlParam();
console.log('集合',datas);
var parms = datas;
let {appId,mp,companyCode,siteCode,md5nm,token,salt,sign}= parms;
if(appId&&companyCode&&siteCode&&md5nm&&token&&salt&&sign){
}else{
alert("参数不全,不发请求跳转");
return;
}
getAuthorization(parms,datas.href_url);
});
\ No newline at end of file
$(function() {
let comGetLocation={
//code
getCompanyCode() {
let pathname = location.pathname;
return pathname.split("/")[1];
},
//sit code
getSiteCode() {
let pathname = location.pathname;
return pathname.split("/")[2];
},
//compan + sit
getRouterBefore() {
let pathname = location.pathname;
return "/" + pathname.split("/")[1] + "/" + pathname.split("/")[2];
},
//reject
getRouterDetail() {
let pathname = location.pathname;
return "/" + pathname.split("/")[3] + "/" + pathname.split("/")[4];
},
//hash parm
getUrlParam(query) {
var search = location.search;
if (location.search.indexOf("?") == -1) {
return '';
}
var queryString = search.split("?")[1];
if (queryString.indexOf("&&") != -1) {
var arr = queryString.split("&&");
for (let i = 0; i < arr.length; i++) {
if (arr[i].indexOf(query) != -1) {
return arr[i].split(["=",1]).join();
}
}
}else if (queryString.indexOf("&") != -1) {
// split
var arr = queryString.split("&");
for (let i = 0; i < arr.length; i++) {
if (arr[i].indexOf(query) != -1) {
// href_url
if(query==="href_url"){
return location.href.split("href_url=")[1];
}
return arr[i].split(query+"=")[1];
}
}
} else if (queryString.indexOf("=") != -1) {
if (queryString.indexOf(query) != -1) {
return queryString.split("=")[1];
}
} else {
return '';
}
},
getUrl() {
var search = location.search;
var queryString = search.split("*")[2];
if(queryString){
return queryString;
} else {
return '';
}
}
};
function getAuthorization(parms,href_url) {
var data={
name:parms.md5nm,
salt:parms.salt?parms.salt:null,
appId:parms.appId?parms.appId:null,
type:parms.authType?parms.authType:null
};
if(parms.mp==1||parms.mp==0){
data.terminalType=3;
}else{
data.terminalType=parms.mp;
}
var origin= location.origin;
$.ajax({
type: "post",
// url: origin+"/system/api/loginApp?companyCode=" + companyCode + "&siteCode=" + siteCode,
url: origin+"/system/public/api/getAccount?companyCode=" + companyCode + "&siteCode=" + siteCode,
async: true,
dataType: "json",
contentType: 'application/json;charset=UTF-8',
data:JSON.stringify(data),
success: function (res) {
if (res.code == 1000) {
$("#erro_wrap").html("<span style='color: red'>接口请求成功:</span>")
//token
sessionStorage.setItem("token", res.data.Authorization);
sessionStorage.setItem("accountId", res.data.userInfo.id);
sessionStorage.setItem("orgId", res.data.userInfo.orgId);
sessionStorage.setItem("headPortrait", res.data.userInfo.headPortrait);
sessionStorage.setItem("fullname", res.data.userInfo.fullName);
sessionStorage.setItem("username", res.data.userInfo.username);
sessionStorage.setItem("siteName", res.data.userInfo.siteName);
sessionStorage.setItem("mp", mp);
$("#erro_wrap").html("<span style='color: red'>接口请求成功替换跳转:</span>");
location.replace(href_url);
$("#erro_wrap").html("<span style='color: red'>接口请求成功替换跳转失败:</span>")
}else {
alert(JSON.stringify(res.subMsg));
$("#erro_wrap").html("<span style='color: red'>错误信息:</span>"+res.subMsg)
}
},
error:function (err) {
$("#erro_wrap").html("<span style='color: red'>错误信息:</span>")
alert(JSON.stringify(err));
}
});
};
let mp= comGetLocation.getUrlParam("mp");
let appId= comGetLocation.getUrlParam("appId");
let authType= comGetLocation.getUrlParam("authType");
let salt= comGetLocation.getUrlParam("salt");
let md5nm= comGetLocation.getUrlParam("md5nm");
let companyCode= comGetLocation.getUrlParam("companyCode");
let siteCode= comGetLocation.getUrlParam("siteCode");
let href_url= comGetLocation.getUrlParam("href_url");
var data = {appId,authType,md5nm,companyCode,siteCode,mp,salt}
getAuthorization(data,href_url);
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>video</title>
</head>
<body style="background: #000;margin: 0;">
<video id="video-player" style="width: 100%;background: #000;"
autoplay="false"
x5-video-player-type="h5"
x5-video-orientation="landscape|portrait"
controls/>
<script>
function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r != null)
return unescape(r[2]);
return null; //返回参数值
}
window.onload = function () {
var src = getUrlParam("src");
var videoPlayer = document.getElementById("video-player");
videoPlayer.src = src;
videoPlayer.pause();
}
</script>
</body>
</html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
const urlConfigObj = {
urlPrefix:""
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment