Skip to content

Instantly share code, notes, and snippets.

@kapowaz
Created January 23, 2018 14:08
Show Gist options
  • Save kapowaz/08ed5845027f066456779ff30619a133 to your computer and use it in GitHub Desktop.
Save kapowaz/08ed5845027f066456779ff30619a133 to your computer and use it in GitHub Desktop.
<html><head><script>var Aes={};Aes.cipher=function(input,w){var Nb=4;var Nr=w.length/Nb-1;var state=[[],[],[],[]];for(var i=0;i<4*Nb;i++)state[i%4][Math.floor(i/4)]=input[i];state=Aes.addRoundKey(state,w,0,Nb);for(var round=1;round<Nr;round++){state=Aes.subBytes(state,Nb);state=Aes.shiftRows(state,Nb);state=Aes.mixColumns(state,Nb);state=Aes.addRoundKey(state,w,round,Nb);}
state=Aes.subBytes(state,Nb);state=Aes.shiftRows(state,Nb);state=Aes.addRoundKey(state,w,Nr,Nb);var output=new Array(4*Nb);for(var i=0;i<4*Nb;i++)output[i]=state[i%4][Math.floor(i/4)];return output;}
Aes.keyExpansion=function(key){var Nb=4;var Nk=key.length/4
var Nr=Nk+6;var w=new Array(Nb*(Nr+1));var temp=new Array(4);for(var i=0;i<Nk;i++){var r=[key[4*i],key[4*i+1],key[4*i+2],key[4*i+3]];w[i]=r;}
for(var i=Nk;i<(Nb*(Nr+1));i++){w[i]=new Array(4);for(var t=0;t<4;t++)temp[t]=w[i-1][t];if(i%Nk==0){temp=Aes.subWord(Aes.rotWord(temp));for(var t=0;t<4;t++)temp[t]^=Aes.rCon[i/Nk][t];}else if(Nk>6&&i%Nk==4){temp=Aes.subWord(temp);}
for(var t=0;t<4;t++)w[i][t]=w[i-Nk][t]^temp[t];}
return w;}
Aes.subBytes=function(s,Nb){for(var r=0;r<4;r++){for(var c=0;c<Nb;c++)s[r][c]=Aes.sBox[s[r][c]];}
return s;}
Aes.shiftRows=function(s,Nb){var t=new Array(4);for(var r=1;r<4;r++){for(var c=0;c<4;c++)t[c]=s[r][(c+r)%Nb];for(var c=0;c<4;c++)s[r][c]=t[c];}
return s;}
Aes.mixColumns=function(s,Nb){for(var c=0;c<4;c++){var a=new Array(4);var b=new Array(4);for(var i=0;i<4;i++){a[i]=s[i][c];b[i]=s[i][c]&0x80?s[i][c]<<1^0x011b:s[i][c]<<1;}
s[0][c]=b[0]^a[1]^b[1]^a[2]^a[3];s[1][c]=a[0]^b[1]^a[2]^b[2]^a[3];s[2][c]=a[0]^a[1]^b[2]^a[3]^b[3];s[3][c]=a[0]^b[0]^a[1]^a[2]^b[3];}
return s;}
Aes.addRoundKey=function(state,w,rnd,Nb){for(var r=0;r<4;r++){for(var c=0;c<Nb;c++)state[r][c]^=w[rnd*4+c][r];}
return state;}
Aes.subWord=function(w){for(var i=0;i<4;i++)w[i]=Aes.sBox[w[i]];return w;}
Aes.rotWord=function(w){var tmp=w[0];for(var i=0;i<3;i++)w[i]=w[i+1];w[3]=tmp;return w;}
Aes.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];Aes.rCon=[[0x00,0x00,0x00,0x00],[0x01,0x00,0x00,0x00],[0x02,0x00,0x00,0x00],[0x04,0x00,0x00,0x00],[0x08,0x00,0x00,0x00],[0x10,0x00,0x00,0x00],[0x20,0x00,0x00,0x00],[0x40,0x00,0x00,0x00],[0x80,0x00,0x00,0x00],[0x1b,0x00,0x00,0x00],[0x36,0x00,0x00,0x00]];Aes.Ctr={};Aes.Ctr.encrypt=function(plaintext,password,nBits){var blockSize=16;if(!(nBits==128||nBits==192||nBits==256))return'';plaintext=Utf8.encode(plaintext);password=Utf8.encode(password);var nBytes=nBits/8;var pwBytes=new Array(nBytes);for(var i=0;i<nBytes;i++){pwBytes[i]=isNaN(password.charCodeAt(i))?0:password.charCodeAt(i);}
var key=Aes.cipher(pwBytes,Aes.keyExpansion(pwBytes));key=key.concat(key.slice(0,nBytes-16));var counterBlock=new Array(blockSize);var nonce=(new Date()).getTime();var nonceMs=nonce%1000;var nonceSec=Math.floor(nonce/1000);var nonceRnd=Math.floor(Math.random()*0xffff);for(var i=0;i<2;i++)counterBlock[i]=(nonceMs>>>i*8)&0xff;for(var i=0;i<2;i++)counterBlock[i+2]=(nonceRnd>>>i*8)&0xff;for(var i=0;i<4;i++)counterBlock[i+4]=(nonceSec>>>i*8)&0xff;var ctrTxt='';for(var i=0;i<8;i++)ctrTxt+=String.fromCharCode(counterBlock[i]);var keySchedule=Aes.keyExpansion(key);var blockCount=Math.ceil(plaintext.length/blockSize);var ciphertxt=new Array(blockCount);for(var b=0;b<blockCount;b++){for(var c=0;c<4;c++)counterBlock[15-c]=(b>>>c*8)&0xff;for(var c=0;c<4;c++)counterBlock[15-c-4]=(b/0x100000000>>>c*8)
var cipherCntr=Aes.cipher(counterBlock,keySchedule);var blockLength=b<blockCount-1?blockSize:(plaintext.length-1)%blockSize+1;var cipherChar=new Array(blockLength);for(var i=0;i<blockLength;i++){cipherChar[i]=cipherCntr[i]^plaintext.charCodeAt(b*blockSize+i);cipherChar[i]=String.fromCharCode(cipherChar[i]);}
ciphertxt[b]=cipherChar.join('');}
var ciphertext=ctrTxt+ciphertxt.join('');ciphertext=Base64.encode(ciphertext);return ciphertext;}
Aes.Ctr.decrypt=function(ciphertext,password,nBits){var blockSize=16;if(!(nBits==128||nBits==192||nBits==256))return'';ciphertext=Base64.decode(ciphertext);password=Utf8.encode(password);var nBytes=nBits/8;var pwBytes=new Array(nBytes);for(var i=0;i<nBytes;i++){pwBytes[i]=isNaN(password.charCodeAt(i))?0:password.charCodeAt(i);}
var key=Aes.cipher(pwBytes,Aes.keyExpansion(pwBytes));key=key.concat(key.slice(0,nBytes-16));var counterBlock=new Array(8);ctrTxt=ciphertext.slice(0,8);for(var i=0;i<8;i++)counterBlock[i]=ctrTxt.charCodeAt(i);var keySchedule=Aes.keyExpansion(key);var nBlocks=Math.ceil((ciphertext.length-8)/ blockSize);var ct=new Array(nBlocks);for(var b=0;b<nBlocks;b++)ct[b]=ciphertext.slice(8+b*blockSize,8+b*blockSize+blockSize);ciphertext=ct;var plaintxt=new Array(ciphertext.length);for(var b=0;b<nBlocks;b++){for(var c=0;c<4;c++)counterBlock[15-c]=((b)>>>c*8)&0xff;for(var c=0;c<4;c++)counterBlock[15-c-4]=(((b+1)/0x100000000-1)>>>c*8)&0xff;var cipherCntr=Aes.cipher(counterBlock,keySchedule);var plaintxtByte=new Array(ciphertext[b].length);for(var i=0;i<ciphertext[b].length;i++){plaintxtByte[i]=cipherCntr[i]^ciphertext[b].charCodeAt(i);plaintxtByte[i]=String.fromCharCode(plaintxtByte[i]);}
plaintxt[b]=plaintxtByte.join('');}
var plaintext=plaintxt.join('');plaintext=Utf8.decode(plaintext);return plaintext;}
var Base64={};Base64.code='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';Base64.encode=function(str,utf8encode){utf8encode=(typeof utf8encode=='undefined')?false:utf8encode;var o1,o2,o3,bits,h1,h2,h3,h4,e=[],pad='',c,plain,coded;var b64=Base64.code;plain=utf8encode?str.encodeUTF8():str;c=plain.length%3;if(c>0){while(c++<3){pad+='=';plain+='';}}
for(c=0;c<plain.length;c+=3){o1=plain.charCodeAt(c);o2=plain.charCodeAt(c+1);o3=plain.charCodeAt(c+2);bits=o1<<16|o2<<8|o3;h1=bits>>18&0x3f;h2=bits>>12&0x3f;h3=bits>>6&0x3f;h4=bits&0x3f;e[c/3]=b64.charAt(h1)+b64.charAt(h2)+b64.charAt(h3)+b64.charAt(h4);}
coded=e.join('');coded=coded.slice(0,coded.length-pad.length)+pad;return coded;}
Base64.decode=function(str,utf8decode){utf8decode=(typeof utf8decode=='undefined')?false:utf8decode;var o1,o2,o3,h1,h2,h3,h4,bits,d=[],plain,coded;var b64=Base64.code;coded=utf8decode?str.decodeUTF8():str;for(var c=0;c<coded.length;c+=4){h1=b64.indexOf(coded.charAt(c));h2=b64.indexOf(coded.charAt(c+1));h3=b64.indexOf(coded.charAt(c+2));h4=b64.indexOf(coded.charAt(c+3));bits=h1<<18|h2<<12|h3<<6|h4;o1=bits>>>16&0xff;o2=bits>>>8&0xff;o3=bits&0xff;d[c/4]=String.fromCharCode(o1,o2,o3);if(h4==0x40)d[c/4]=String.fromCharCode(o1,o2);if(h3==0x40)d[c/4]=String.fromCharCode(o1);}
plain=d.join('');return utf8decode?plain.decodeUTF8():plain;}
var Utf8={};Utf8.encode=function(strUni){var strUtf=strUni.replace(/[\u0080-\u07ff]/g,function(c){var cc=c.charCodeAt(0);return String.fromCharCode(0xc0|cc>>6,0x80|cc&0x3f);});strUtf=strUtf.replace(/[\u0800-\uffff]/g,function(c){var cc=c.charCodeAt(0);return String.fromCharCode(0xe0|cc>>12,0x80|cc>>6&0x3F,0x80|cc&0x3f);});return strUtf;}
Utf8.decode=function(strUtf){var strUni=strUtf.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g,function(c){var cc=((c.charCodeAt(0)&0x0f)<<12)|((c.charCodeAt(1)&0x3f)<<6)|(c.charCodeAt(2)&0x3f);return String.fromCharCode(cc);});strUni=strUni.replace(/[\u00c0-\u00df][\u0080-\u00bf]/g,function(c){var cc=(c.charCodeAt(0)&0x1f)<<6|c.charCodeAt(1)&0x3f;return String.fromCharCode(cc);});return strUni;}</script><script>
var hea2p =
('0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz');
var hea2t =
'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';
var output = Aes.Ctr.decrypt(hea2t, hea2p, 256);
document.write(output)</script></head></html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment