Advertisement
Guest User

VKCrypt for Firefox, Chrome (greasemonkey)

a guest
Feb 4th, 2014
802
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.62 KB | None | 0 0
  1. // ==UserScript==
  2. // @name vkcrypt
  3. // @namespace vkcrypt
  4. // @version 1.1
  5. // @grant none
  6. // @grant none
  7. // @include http://vk.com/*
  8. // @include https://vk.com/*
  9. // ==/UserScript==
  10.  
  11. /* Инструкция
  12. 1) Установить скрипт себе и партнеру
  13. 2) Ввести пароль и числовой id ниже в secureKeysArray
  14. 3) Передать пароль вашему партнеру
  15. */
  16.  
  17. /* Ты родился в системе, которая дала твоим родителям возможность вырасти, познакомиться, узаконить свои отношения и родить тебя. С этого момента ты попадаешь в её оборот. Свидетельство о рождении – это первый повешенный на тебя «ярлык», который идентифицирует тебя среди всей массы народонаселения. Затем ты растешь и получаешь образование – так тебя готовят к жизни в системе. Набирая левел за левелом, ярлык за ярлыком, ты познаешь механизм работы системы, втягиваешься в нее, становясь одним из ее элементов. Система формирует тебя таким, каким ты нужен ей, а не таким, каким хочешь быть ты сам. Тебе навязываются чужие мнения и жизненные приоритеты, моду, религиозные догматы, политические лозунги, фальшивый патриотизм, страх и уважение к политической элите. Тебе каждый день промывают мозги через телевизор, интернет, радио, газеты, на любых массовых мероприятиях. Твой индивидуализм это только твой самообман – ты такой же безликий, как и все остальные.
  18. Сформировавшись (а ты ли сам себя сформировал?), ты становишься полноценным элементом взрастившей тебя системы. Теперь ты должен оправдать вложенные в тебя средства. Ты должен создать семью, взять на 30 лет вперед кредитов и ипотек под квартиру, отечественную машину и айфон супруге. Родить 1-2-3-etc детей, возможно, получить за них государственную подачку и копить деньги себе на пенсию. Но живешь ты не для себя – сразу забудь об этом! Ты живешь ради своей страны, ради той части существующей мировой системы, где тебе повезло жить. Какой бы не был уровень свободы, любое государство всегда «имеет» своих граждан во всех позах. Ты либо поднимаешь страну с колен, либо укрепляешь ее уверенное развитие, либо не мешаешь это делать остальным. Свою юность, молодость, зрелость и старость ты отдаешь в жертву системе, причем без малейших колебаний, ибо так живут все. За это время ты можешь сменить машину, квартиру, жену, переехать в другой город или страну, но ты никогда не выйдешь из-под контроля системы. Ты её неотделимая часть.
  19. И так. Ты отдал всю свою жизнь во имя навязанных тебе ценностей и мировоззрения. И системе ты перестаешь быть не нужен. Для нее ты уже просто живой труп. Давление на тебя заметно снижается. Но… Все твои смелые юношеские мечты так и остались мечтами. Ты вырастил своих детей – они стали новыми элементами системы, заменив тебя. Твоя жизнь прожита не тобой и не для тебя. И что-либо менять уже не имеет смысла.
  20. Вот краткая жизненная перспектива для 99% человеческого общества. Но унывать ни в коем случае не стоит! Ведь праведно прожитая жизнь, по убеждениям теологов, неизменно приведет тебя в лучший из миров. И не помышляй изменить или сломать систему. */
  21.  
  22. if (document.getElementById('im_tabs'))
  23. {
  24. /*
  25. CryptoJS v3.1.2
  26. code.google.com/p/crypto-js
  27. (c) 2009-2013 by Jeff Mott. All rights reserved.
  28. code.google.com/p/crypto-js/wiki/License
  29. */
  30. var CryptoJS=CryptoJS||function(u,p){var d={},l=d.lib={},s=function(){},t=l.Base={extend:function(a){s.prototype=this;var c=new s;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
  31. r=l.WordArray=t.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=p?c:4*a.length},toString:function(a){return(a||v).stringify(this)},concat:function(a){var c=this.words,e=a.words,j=this.sigBytes;a=a.sigBytes;this.clamp();if(j%4)for(var k=0;k<a;k++)c[j+k>>>2]|=(e[k>>>2]>>>24-8*(k%4)&255)<<24-8*((j+k)%4);else if(65535<e.length)for(k=0;k<a;k+=4)c[j+k>>>2]=e[k>>>2];else c.push.apply(c,e);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<
  32. 32-8*(c%4);a.length=u.ceil(c/4)},clone:function(){var a=t.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],e=0;e<a;e+=4)c.push(4294967296*u.random()|0);return new r.init(c,a)}}),w=d.enc={},v=w.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var e=[],j=0;j<a;j++){var k=c[j>>>2]>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j<c;j+=2)e[j>>>3]|=parseInt(a.substr(j,
  33. 2),16)<<24-4*(j%8);return new r.init(e,c/2)}},b=w.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var e=[],j=0;j<a;j++)e.push(String.fromCharCode(c[j>>>2]>>>24-8*(j%4)&255));return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j<c;j++)e[j>>>2]|=(a.charCodeAt(j)&255)<<24-8*(j%4);return new r.init(e,c)}},x=w.Utf8={stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}},
  34. q=l.BufferedBlockAlgorithm=t.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=x.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,e=c.words,j=c.sigBytes,k=this.blockSize,b=j/(4*k),b=a?u.ceil(b):u.max((b|0)-this._minBufferSize,0);a=b*k;j=u.min(4*a,j);if(a){for(var q=0;q<a;q+=k)this._doProcessBlock(e,q);q=e.splice(0,a);c.sigBytes-=j}return new r.init(q,j)},clone:function(){var a=t.clone.call(this);
  35. a._data=this._data.clone();return a},_minBufferSize:0});l.Hasher=q.extend({cfg:t.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){q.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,e){return(new a.init(e)).finalize(b)}},_createHmacHelper:function(a){return function(b,e){return(new n.HMAC.init(a,
  36. e)).finalize(b)}}});var n=d.algo={};return d}(Math);
  37. (function(){var u=CryptoJS,p=u.lib.WordArray;u.enc.Base64={stringify:function(d){var l=d.words,p=d.sigBytes,t=this._map;d.clamp();d=[];for(var r=0;r<p;r+=3)for(var w=(l[r>>>2]>>>24-8*(r%4)&255)<<16|(l[r+1>>>2]>>>24-8*((r+1)%4)&255)<<8|l[r+2>>>2]>>>24-8*((r+2)%4)&255,v=0;4>v&&r+0.75*v<p;v++)d.push(t.charAt(w>>>6*(3-v)&63));if(l=t.charAt(64))for(;d.length%4;)d.push(l);return d.join("")},parse:function(d){var l=d.length,s=this._map,t=s.charAt(64);t&&(t=d.indexOf(t),-1!=t&&(l=t));for(var t=[],r=0,w=0;w<
  38. l;w++)if(w%4){var v=s.indexOf(d.charAt(w-1))<<2*(w%4),b=s.indexOf(d.charAt(w))>>>6-2*(w%4);t[r>>>2]|=(v|b)<<24-8*(r%4);r++}return p.create(t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})();
  39. (function(u){function p(b,n,a,c,e,j,k){b=b+(n&a|~n&c)+e+k;return(b<<j|b>>>32-j)+n}function d(b,n,a,c,e,j,k){b=b+(n&c|a&~c)+e+k;return(b<<j|b>>>32-j)+n}function l(b,n,a,c,e,j,k){b=b+(n^a^c)+e+k;return(b<<j|b>>>32-j)+n}function s(b,n,a,c,e,j,k){b=b+(a^(n|~c))+e+k;return(b<<j|b>>>32-j)+n}for(var t=CryptoJS,r=t.lib,w=r.WordArray,v=r.Hasher,r=t.algo,b=[],x=0;64>x;x++)b[x]=4294967296*u.abs(u.sin(x+1))|0;r=r.MD5=v.extend({_doReset:function(){this._hash=new w.init([1732584193,4023233417,2562383102,271733878])},
  40. _doProcessBlock:function(q,n){for(var a=0;16>a;a++){var c=n+a,e=q[c];q[c]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360}var a=this._hash.words,c=q[n+0],e=q[n+1],j=q[n+2],k=q[n+3],z=q[n+4],r=q[n+5],t=q[n+6],w=q[n+7],v=q[n+8],A=q[n+9],B=q[n+10],C=q[n+11],u=q[n+12],D=q[n+13],E=q[n+14],x=q[n+15],f=a[0],m=a[1],g=a[2],h=a[3],f=p(f,m,g,h,c,7,b[0]),h=p(h,f,m,g,e,12,b[1]),g=p(g,h,f,m,j,17,b[2]),m=p(m,g,h,f,k,22,b[3]),f=p(f,m,g,h,z,7,b[4]),h=p(h,f,m,g,r,12,b[5]),g=p(g,h,f,m,t,17,b[6]),m=p(m,g,h,f,w,22,b[7]),
  41. f=p(f,m,g,h,v,7,b[8]),h=p(h,f,m,g,A,12,b[9]),g=p(g,h,f,m,B,17,b[10]),m=p(m,g,h,f,C,22,b[11]),f=p(f,m,g,h,u,7,b[12]),h=p(h,f,m,g,D,12,b[13]),g=p(g,h,f,m,E,17,b[14]),m=p(m,g,h,f,x,22,b[15]),f=d(f,m,g,h,e,5,b[16]),h=d(h,f,m,g,t,9,b[17]),g=d(g,h,f,m,C,14,b[18]),m=d(m,g,h,f,c,20,b[19]),f=d(f,m,g,h,r,5,b[20]),h=d(h,f,m,g,B,9,b[21]),g=d(g,h,f,m,x,14,b[22]),m=d(m,g,h,f,z,20,b[23]),f=d(f,m,g,h,A,5,b[24]),h=d(h,f,m,g,E,9,b[25]),g=d(g,h,f,m,k,14,b[26]),m=d(m,g,h,f,v,20,b[27]),f=d(f,m,g,h,D,5,b[28]),h=d(h,f,
  42. m,g,j,9,b[29]),g=d(g,h,f,m,w,14,b[30]),m=d(m,g,h,f,u,20,b[31]),f=l(f,m,g,h,r,4,b[32]),h=l(h,f,m,g,v,11,b[33]),g=l(g,h,f,m,C,16,b[34]),m=l(m,g,h,f,E,23,b[35]),f=l(f,m,g,h,e,4,b[36]),h=l(h,f,m,g,z,11,b[37]),g=l(g,h,f,m,w,16,b[38]),m=l(m,g,h,f,B,23,b[39]),f=l(f,m,g,h,D,4,b[40]),h=l(h,f,m,g,c,11,b[41]),g=l(g,h,f,m,k,16,b[42]),m=l(m,g,h,f,t,23,b[43]),f=l(f,m,g,h,A,4,b[44]),h=l(h,f,m,g,u,11,b[45]),g=l(g,h,f,m,x,16,b[46]),m=l(m,g,h,f,j,23,b[47]),f=s(f,m,g,h,c,6,b[48]),h=s(h,f,m,g,w,10,b[49]),g=s(g,h,f,m,
  43. E,15,b[50]),m=s(m,g,h,f,r,21,b[51]),f=s(f,m,g,h,u,6,b[52]),h=s(h,f,m,g,k,10,b[53]),g=s(g,h,f,m,B,15,b[54]),m=s(m,g,h,f,e,21,b[55]),f=s(f,m,g,h,v,6,b[56]),h=s(h,f,m,g,x,10,b[57]),g=s(g,h,f,m,t,15,b[58]),m=s(m,g,h,f,D,21,b[59]),f=s(f,m,g,h,z,6,b[60]),h=s(h,f,m,g,C,10,b[61]),g=s(g,h,f,m,j,15,b[62]),m=s(m,g,h,f,A,21,b[63]);a[0]=a[0]+f|0;a[1]=a[1]+m|0;a[2]=a[2]+g|0;a[3]=a[3]+h|0},_doFinalize:function(){var b=this._data,n=b.words,a=8*this._nDataBytes,c=8*b.sigBytes;n[c>>>5]|=128<<24-c%32;var e=u.floor(a/
  44. 4294967296);n[(c+64>>>9<<4)+15]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360;n[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(n.length+1);this._process();b=this._hash;n=b.words;for(a=0;4>a;a++)c=n[a],n[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return b},clone:function(){var b=v.clone.call(this);b._hash=this._hash.clone();return b}});t.MD5=v._createHelper(r);t.HmacMD5=v._createHmacHelper(r)})(Math);
  45. (function(){var u=CryptoJS,p=u.lib,d=p.Base,l=p.WordArray,p=u.algo,s=p.EvpKDF=d.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,r){for(var p=this.cfg,s=p.hasher.create(),b=l.create(),u=b.words,q=p.keySize,p=p.iterations;u.length<q;){n&&s.update(n);var n=s.update(d).finalize(r);s.reset();for(var a=1;a<p;a++)n=s.finalize(n),s.reset();b.concat(n)}b.sigBytes=4*q;return b}});u.EvpKDF=function(d,l,p){return s.create(p).compute(d,
  46. l)}})();
  47. CryptoJS.lib.Cipher||function(u){var p=CryptoJS,d=p.lib,l=d.Base,s=d.WordArray,t=d.BufferedBlockAlgorithm,r=p.enc.Base64,w=p.algo.EvpKDF,v=d.Cipher=t.extend({cfg:l.extend(),createEncryptor:function(e,a){return this.create(this._ENC_XFORM_MODE,e,a)},createDecryptor:function(e,a){return this.create(this._DEC_XFORM_MODE,e,a)},init:function(e,a,b){this.cfg=this.cfg.extend(b);this._xformMode=e;this._key=a;this.reset()},reset:function(){t.reset.call(this);this._doReset()},process:function(e){this._append(e);return this._process()},
  48. finalize:function(e){e&&this._append(e);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(b,k,d){return("string"==typeof k?c:a).encrypt(e,b,k,d)},decrypt:function(b,k,d){return("string"==typeof k?c:a).decrypt(e,b,k,d)}}}});d.StreamCipher=v.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var b=p.mode={},x=function(e,a,b){var c=this._iv;c?this._iv=u:c=this._prevBlock;for(var d=0;d<b;d++)e[a+d]^=
  49. c[d]},q=(d.BlockCipherMode=l.extend({createEncryptor:function(e,a){return this.Encryptor.create(e,a)},createDecryptor:function(e,a){return this.Decryptor.create(e,a)},init:function(e,a){this._cipher=e;this._iv=a}})).extend();q.Encryptor=q.extend({processBlock:function(e,a){var b=this._cipher,c=b.blockSize;x.call(this,e,a,c);b.encryptBlock(e,a);this._prevBlock=e.slice(a,a+c)}});q.Decryptor=q.extend({processBlock:function(e,a){var b=this._cipher,c=b.blockSize,d=e.slice(a,a+c);b.decryptBlock(e,a);x.call(this,
  50. e,a,c);this._prevBlock=d}});b=b.CBC=q;q=(p.pad={}).Pkcs7={pad:function(a,b){for(var c=4*b,c=c-a.sigBytes%c,d=c<<24|c<<16|c<<8|c,l=[],n=0;n<c;n+=4)l.push(d);c=s.create(l,c);a.concat(c)},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};d.BlockCipher=v.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a,
  51. this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var n=d.CipherParams=l.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b=(p.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?s.create([1398893684,
  52. 1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=s.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return n.create({ciphertext:a,salt:c})}},a=d.SerializableCipher=l.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var l=a.createEncryptor(c,d);b=l.finalize(b);l=l.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})},
  53. decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),p=(p.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=s.random(8));a=w.create({keySize:b+c}).compute(a,d);c=s.create(a.words.slice(b),4*c);a.sigBytes=4*b;return n.create({key:a,iv:c,salt:d})}},c=d.PasswordBasedCipher=a.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){l=this.cfg.extend(l);d=l.kdf.execute(d,
  54. b.keySize,b.ivSize);l.iv=d.iv;b=a.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.iv=d.iv;return a.decrypt.call(this,b,c,d.key,l)}})}();
  55. (function(){for(var u=CryptoJS,p=u.lib.BlockCipher,d=u.algo,l=[],s=[],t=[],r=[],w=[],v=[],b=[],x=[],q=[],n=[],a=[],c=0;256>c;c++)a[c]=128>c?c<<1:c<<1^283;for(var e=0,j=0,c=0;256>c;c++){var k=j^j<<1^j<<2^j<<3^j<<4,k=k>>>8^k&255^99;l[e]=k;s[k]=e;var z=a[e],F=a[z],G=a[F],y=257*a[k]^16843008*k;t[e]=y<<24|y>>>8;r[e]=y<<16|y>>>16;w[e]=y<<8|y>>>24;v[e]=y;y=16843009*G^65537*F^257*z^16843008*e;b[k]=y<<24|y>>>8;x[k]=y<<16|y>>>16;q[k]=y<<8|y>>>24;n[k]=y;e?(e=z^a[a[a[G^z]]],j^=a[a[j]]):e=j=1}var H=[0,1,2,4,8,
  56. 16,32,64,128,27,54],d=d.AES=p.extend({_doReset:function(){for(var a=this._key,c=a.words,d=a.sigBytes/4,a=4*((this._nRounds=d+6)+1),e=this._keySchedule=[],j=0;j<a;j++)if(j<d)e[j]=c[j];else{var k=e[j-1];j%d?6<d&&4==j%d&&(k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255]):(k=k<<8|k>>>24,k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255],k^=H[j/d|0]<<24);e[j]=e[j-d]^k}c=this._invKeySchedule=[];for(d=0;d<a;d++)j=a-d,k=d%4?e[j]:e[j-4],c[d]=4>d||4>=j?k:b[l[k>>>24]]^x[l[k>>>16&255]]^q[l[k>>>
  57. 8&255]]^n[l[k&255]]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var d=a[c+1];a[c+1]=a[c+3];a[c+3]=d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);d=a[c+1];a[c+1]=a[c+3];a[c+3]=d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var m=this._nRounds,g=a[b]^c[0],h=a[b+1]^c[1],k=a[b+2]^c[2],n=a[b+3]^c[3],p=4,r=1;r<m;r++)var q=d[g>>>24]^e[h>>>16&255]^j[k>>>8&255]^l[n&255]^c[p++],s=d[h>>>24]^e[k>>>16&255]^j[n>>>8&255]^l[g&255]^c[p++],t=
  58. d[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++],n=d[n>>>24]^e[g>>>16&255]^j[h>>>8&255]^l[k&255]^c[p++],g=q,h=s,k=t;q=(f[g>>>24]<<24|f[h>>>16&255]<<16|f[k>>>8&255]<<8|f[n&255])^c[p++];s=(f[h>>>24]<<24|f[k>>>16&255]<<16|f[n>>>8&255]<<8|f[g&255])^c[p++];t=(f[k>>>24]<<24|f[n>>>16&255]<<16|f[g>>>8&255]<<8|f[h&255])^c[p++];n=(f[n>>>24]<<24|f[g>>>16&255]<<16|f[h>>>8&255]<<8|f[k&255])^c[p++];a[b]=q;a[b+1]=s;a[b+2]=t;a[b+3]=n},keySize:8});u.AES=p._createHelper(d)})();
  59.  
  60. //test crypting
  61. //var decrypted = CryptoJS.AES.decrypt('U2FsdGVkX18WBLimtd4dQoHYNlRwOHZmUQxi4PwYzUk=', '777')
  62. //alert(decrypted.toString(CryptoJS.enc.Utf8));
  63.  
  64. //Пользователи с пользовательским скриптом
  65. var secureKeysArray=[];
  66. //пример Дуров - id 1
  67. secureKeysArray[1]='password';
  68. }
  69.  
  70.  
  71. // func sending aes message from secure form to main vk form
  72. function sendAES(chatId)
  73. {
  74. //alert (1);
  75. var nonCrypted = document.getElementById('secureForm'+chatId).value;
  76. var crypted = CryptoJS.AES.encrypt(nonCrypted, secureKeysArray[chatId]);
  77.  
  78.  
  79. //alert( nonCrypted + ' - aes - ' + crypted); //test of crypting
  80.  
  81. document.getElementById('im_editable'+chatId).innerHTML='AESSTART'+crypted;
  82. //nonCrypted.value=''; //clear secureform
  83. }
  84.  
  85.  
  86.  
  87. function chatByIdDecrypt(chatId)
  88. {
  89. var logNode = document.getElementById("im_log"+chatId);
  90. var messageTexts=logNode.getElementsByClassName("im_msg_text");
  91.  
  92. for (var i = 0; i < messageTexts.length; ++i) {
  93. var item = messageTexts[i];
  94.  
  95.  
  96. //decrypt HTML! if massage contain 'aesstart' and secret key is entered
  97. if (item.innerHTML.indexOf('AESSTART')!=-1 && secureKeysArray[chatId]!=null) {
  98. item.innerHTML = item.innerHTML.replace('AESSTART ','');
  99. item.innerHTML = item.innerHTML.replace('AESSTART','');
  100.  
  101.  
  102. //alert(item.innerHTML);
  103. //alert(secureKeysArray[chatId]);
  104.  
  105. var decrypted = CryptoJS.AES.decrypt(item.innerHTML, secureKeysArray[chatId]);
  106. decryptedHTML = decrypted.toString(CryptoJS.enc.Utf8);
  107.  
  108. var designKey="<img align=\"right\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8\/9hAAAA5ElEQVR42s3TPWvCUBTG8cTJSXwp\r\nfgURKoqfQBy7ugquFYpFUAd3cRBBJ3XxI7j5QvfuIpS2oIMijpbSQXSQ\/g9EOGQwBpcc+A259\/Ak\r\n9x5iGneW6ckAH85uA2JoIosA9pihhp1TQAQfiOIda8SRxidSOF0LKKGLCtpqr4NXNKwX2EuO+SYB\r\nPTwjjB\/VkMTc4QqGOiCIX7WZwAJLbG3rcuwvlPURJGSgGuXT68hhpNbHeEIRfQl4sC4rhIm6RJnI\r\nCo84qoACXpDH92WM0tRCBn78YYoqNk5jtD9LwMG4sbz5L7iqf0eHLAe+b17mAAAAAElFTkSuQmCC\">";
  109.  
  110.  
  111. var postHTML = '<br><font style="font-size:9px;">Расшифровка и шифрование VkCrypt</font>';
  112.  
  113.  
  114. if (decryptedHTML==null || decryptedHTML=='') decryptedHTML = '<b>Ошибка</b> (неверный ключ)';
  115. item.innerHTML = designKey + decryptedHTML + '';
  116.  
  117.  
  118.  
  119.  
  120. item.style.backgroundColor="#DEFFDE";
  121. item.style.padding="3px";
  122. }
  123.  
  124.  
  125.  
  126. }
  127.  
  128.  
  129. }
  130.  
  131.  
  132. function chatDecrypt()
  133. {
  134. }
  135.  
  136.  
  137.  
  138. function vkPageDeCrypt()
  139. {
  140.  
  141. //если открыт чат
  142. if (document.getElementById('im_tabs'))
  143. {
  144.  
  145.  
  146.  
  147. var chats = document.getElementById('im_tabs').childNodes;
  148. for(i=0; i<chats.length; i++) {
  149. if (chats[i].className=="im_tab_selected")
  150. {
  151. var chatId=chats[i].id;
  152. chatId=chatId.replace('im_tab','');
  153. //alert ('selected chat id: ' + chatId); //подсказка для определения ID чата
  154. }
  155.  
  156. }
  157.  
  158. if (document.getElementById('secureForms')) {} else {
  159.  
  160. var secureFormsElem = document.createElement("div");
  161. secureFormsElem.setAttribute("id", "secureForms");
  162. secureFormsElem.setAttribute("style", "display: none;");
  163.  
  164.  
  165. document.getElementById("im_texts").appendChild(secureFormsElem);
  166.  
  167. //document.getElementById('im_texts').innerHTML=document.getElementById('im_texts').innerHTML+'<div id="secureForms" style="display: none;"></div>';
  168.  
  169. }
  170.  
  171.  
  172.  
  173. var secureKeyHtmlButton='<div id="sucureButtonOn"><a href="#" onClick="secureKeysArray['+ chatId + ']=prompt(\'ENTER SECRET KEY FOR ID '+ chatId + ' HERE\',\'\'); return false;">ENTER SECRET KEY</a></div>';
  174.  
  175.  
  176. //алерт для определения секретного ключа
  177. //if (secureKeysArray[chatId]!=null) {alert('secret key for'+ chatId + ' is ' + secureKeysArray[chatId]);}
  178.  
  179.  
  180.  
  181. //если в окне не отрисована кнопка и окно не секретно
  182. if (document.getElementById('im_peer_holders').innerHTML.indexOf('ENTER')==-1 && secureKeysArray[chatId]==null){
  183. //document.getElementById('im_peer_holders').innerHTML=document.getElementById('im_peer_holders').innerHTML + secureKeyHtmlButton;
  184. document.getElementById('im_texts').style.opacity='1';
  185. }
  186.  
  187.  
  188.  
  189. var secureForms = document.getElementById('secureForms').childNodes;
  190.  
  191. //если чат секретный
  192. if (secureKeysArray[chatId]!=null){
  193.  
  194.  
  195. //decode log by ID
  196. chatByIdDecrypt(chatId);
  197.  
  198.  
  199. document.getElementById('im_texts').style.position='relative';
  200. document.getElementById('secureForms').style.display='block';
  201.  
  202.  
  203.  
  204. //создаём секретную форму, если её нет
  205. if (document.getElementById('secureForm'+chatId)) {} else document.getElementById('secureForms').innerHTML=document.getElementById('secureForms').innerHTML+'<textarea onkeydown="if(event.keyCode == 13) return false;" id="secureForm'+chatId+'" style="height: 40px; width: 348px; padding: 3px 5px 5px 3px; display: block; font: normal normal 400 11px/16px Tahoma; border: 1px solid #C0CAD5; z-index: 140; position: absolute; top:0; resize: none; " ></textarea>'
  206.  
  207.  
  208. for(i=0; i<secureForms.length; i++) {
  209. if (secureForms[i].id!='secureForm'+chatId)
  210. {
  211. secureForms[i].style.display='none';
  212. document.getElementById('im_send').onclick=function() {IM.send();};
  213.  
  214. }
  215. else
  216. {
  217. secureForms[i].style.display='block';
  218. document.getElementById('im_send').onclick=function() {sendAES(chatId); IM.send(); document.getElementById('secureForm'+chatId).value='';};
  219.  
  220. }
  221. }
  222.  
  223. document.onkeydown = function(event){
  224. events = event || window.event;
  225. if (events.keyCode == 13 && document.getElementById('secureForm'+chatId).value!='') {
  226. sendAES(chatId);
  227. IM.send();
  228. document.getElementById('secureForm'+chatId).value='';
  229. document.getElementById('secureForm'+chatId).focus();
  230. }
  231. }
  232.  
  233.  
  234.  
  235. //если была отрисована кнопка введите ключ - удалить её
  236. if (document.getElementById('sucureButtonOn')) {element=document.getElementById("sucureButtonOn"); element.parentNode.removeChild(element);}
  237.  
  238. //если кнопка введите ключ не была отрисована
  239. if (document.getElementById('secureOn')) {}
  240. else
  241. {
  242.  
  243.  
  244. document.getElementById('im_peer_holders').innerHTML=document.getElementById('im_peer_holders').innerHTML + '<div id="secureOn" style="color: rgb(43, 88, 122);">Secure on</div>';
  245. }
  246.  
  247.  
  248. }
  249. else
  250. {
  251.  
  252. for(i=0; i<secureForms.length; i++) {
  253. secureForms[i].style.display='none';
  254. }
  255.  
  256. }
  257.  
  258.  
  259. }
  260.  
  261. //запускаем функцию снова
  262. setTimeout(function() {
  263. vkPageDeCrypt();
  264. }, 500);
  265.  
  266. }
  267. vkPageDeCrypt();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement