Last active
October 10, 2018 03:13
-
-
Save leng-yue/424bb6d8877fc82625d6aa6b8b8298c7 to your computer and use it in GitHub Desktop.
Transavia JS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//https://www.transavia.com/cczkbrpmtnvieywa.js | |
var CryptoJS=CryptoJS||(function(Math,undefined){var C={};var C_lib=C.lib={};var Base=C_lib.Base=(function(){function F(){} | |
return{extend:function(overrides){F.prototype=this;var subtype=new F();if(overrides){subtype.mixIn(overrides);} | |
if(!subtype.hasOwnProperty('init')){subtype.init=function(){subtype.$super.init.apply(this,arguments);};} | |
subtype.init.prototype=subtype;subtype.$super=this;return subtype;},create:function(){var instance=this.extend();instance.init.apply(instance,arguments);return instance;},init:function(){},mixIn:function(properties){for(var propertyName in properties){if(properties.hasOwnProperty(propertyName)){this[propertyName]=properties[propertyName];}} | |
if(properties.hasOwnProperty('toString')){this.toString=properties.toString;}},clone:function(){return this.init.prototype.extend(this);}};}());var WordArray=C_lib.WordArray=Base.extend({init:function(words,sigBytes){words=this.words=words||[];if(sigBytes!=undefined){this.sigBytes=sigBytes;}else{this.sigBytes=words.length*4;}},toString:function(encoder){return(encoder||Hex).stringify(this);},concat:function(wordArray){var thisWords=this.words;var thatWords=wordArray.words;var thisSigBytes=this.sigBytes;var thatSigBytes=wordArray.sigBytes;this.clamp();if(thisSigBytes%4){for(var i=0;i<thatSigBytes;i++){var thatByte=(thatWords[i>>>2]>>>(24-(i%4)*8))&0xff;thisWords[(thisSigBytes+i)>>>2]|=thatByte<<(24-((thisSigBytes+i)%4)*8);}}else if(thatWords.length>0xffff){for(var i=0;i<thatSigBytes;i+=4){thisWords[(thisSigBytes+i)>>>2]=thatWords[i>>>2];}}else{thisWords.push.apply(thisWords,thatWords);} | |
this.sigBytes+=thatSigBytes;return this;},clamp:function(){var words=this.words;var sigBytes=this.sigBytes;words[sigBytes>>>2]&=0xffffffff<<(32-(sigBytes%4)*8);words.length=Math.ceil(sigBytes/4);},clone:function(){var clone=Base.clone.call(this);clone.words=this.words.slice(0);return clone;},random:function(nBytes){var words=[];for(var i=0;i<nBytes;i+=4){words.push((Math.random()*0x100000000)|0);} | |
return new WordArray.init(words,nBytes);}});var C_enc=C.enc={};var Hex=C_enc.Hex={stringify:function(wordArray){var words=wordArray.words;var sigBytes=wordArray.sigBytes;var hexChars=[];for(var i=0;i<sigBytes;i++){var bite=(words[i>>>2]>>>(24-(i%4)*8))&0xff;hexChars.push((bite>>>4).toString(16));hexChars.push((bite&0x0f).toString(16));} | |
return hexChars.join('');},parse:function(hexStr){var hexStrLength=hexStr.length;var words=[];for(var i=0;i<hexStrLength;i+=2){words[i>>>3]|=parseInt(hexStr.substr(i,2),16)<<(24-(i%8)*4);} | |
return new WordArray.init(words,hexStrLength/2);}};var Latin1=C_enc.Latin1={stringify:function(wordArray){var words=wordArray.words;var sigBytes=wordArray.sigBytes;var latin1Chars=[];for(var i=0;i<sigBytes;i++){var bite=(words[i>>>2]>>>(24-(i%4)*8))&0xff;latin1Chars.push(String.fromCharCode(bite));} | |
return latin1Chars.join('');},parse:function(latin1Str){var latin1StrLength=latin1Str.length;var words=[];for(var i=0;i<latin1StrLength;i++){words[i>>>2]|=(latin1Str.charCodeAt(i)&0xff)<<(24-(i%4)*8);} | |
return new WordArray.init(words,latin1StrLength);}};var Utf8=C_enc.Utf8={stringify:function(wordArray){try{return decodeURIComponent(escape(Latin1.stringify(wordArray)));}catch(e){throw new Error('Malformed UTF-8 data');}},parse:function(utf8Str){return Latin1.parse(unescape(encodeURIComponent(utf8Str)));}};var BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm=Base.extend({reset:function(){this._data=new WordArray.init();this._nDataBytes=0;},_append:function(data){if(typeof data=='string'){data=Utf8.parse(data);} | |
this._data.concat(data);this._nDataBytes+=data.sigBytes;},_process:function(doFlush){var data=this._data;var dataWords=data.words;var dataSigBytes=data.sigBytes;var blockSize=this.blockSize;var blockSizeBytes=blockSize*4;var nBlocksReady=dataSigBytes/blockSizeBytes;if(doFlush){nBlocksReady=Math.ceil(nBlocksReady);}else{nBlocksReady=Math.max((nBlocksReady|0)-this._minBufferSize,0);} | |
var nWordsReady=nBlocksReady*blockSize;var nBytesReady=Math.min(nWordsReady*4,dataSigBytes);if(nWordsReady){for(var offset=0;offset<nWordsReady;offset+=blockSize){this._doProcessBlock(dataWords,offset);} | |
var processedWords=dataWords.splice(0,nWordsReady);data.sigBytes-=nBytesReady;} | |
return new WordArray.init(processedWords,nBytesReady);},clone:function(){var clone=Base.clone.call(this);clone._data=this._data.clone();return clone;},_minBufferSize:0});var Hasher=C_lib.Hasher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),init:function(cfg){this.cfg=this.cfg.extend(cfg);this.reset();},reset:function(){BufferedBlockAlgorithm.reset.call(this);this._doReset();},update:function(messageUpdate){this._append(messageUpdate);this._process();return this;},finalize:function(messageUpdate){if(messageUpdate){this._append(messageUpdate);} | |
var hash=this._doFinalize();return hash;},blockSize:512/32,_createHelper:function(hasher){return function(message,cfg){return new hasher.init(cfg).finalize(message);};},_createHmacHelper:function(hasher){return function(message,key){return new C_algo.HMAC.init(hasher,key).finalize(message);};}});var C_algo=C.algo={};return C;}(Math));(function(){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var C_algo=C.algo;var W=[];var SHA1=C_algo.SHA1=Hasher.extend({_doReset:function(){this._hash=new WordArray.init([0x67452301,0xefcdab89,0x98badcfe,0x10325476,0xc3d2e1f0]);},_doProcessBlock:function(M,offset){var H=this._hash.words;var a=H[0];var b=H[1];var c=H[2];var d=H[3];var e=H[4];for(var i=0;i<80;i++){if(i<16){W[i]=M[offset+i]|0;}else{var n=W[i-3]^W[i-8]^W[i-14]^W[i-16];W[i]=(n<<1)|(n>>>31);} | |
var t=((a<<5)|(a>>>27))+e+W[i];if(i<20){t+=((b&c)|(~b&d))+0x5a827999;}else if(i<40){t+=(b^c^d)+0x6ed9eba1;}else if(i<60){t+=((b&c)|(b&d)|(c&d))-0x70e44324;}else{t+=(b^c^d)-0x359d3e2a;} | |
e=d;d=c;c=(b<<30)|(b>>>2);b=a;a=t;} | |
H[0]=(H[0]+a)|0;H[1]=(H[1]+b)|0;H[2]=(H[2]+c)|0;H[3]=(H[3]+d)|0;H[4]=(H[4]+e)|0;},_doFinalize:function(){var data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=0x80<<(24-nBitsLeft%32);dataWords[(((nBitsLeft+64)>>>9)<<4)+14]=Math.floor(nBitsTotal/0x100000000);dataWords[(((nBitsLeft+64)>>>9)<<4)+15]=nBitsTotal;data.sigBytes=dataWords.length*4;this._process();return this._hash;},clone:function(){var clone=Hasher.clone.call(this);clone._hash=this._hash.clone();return clone;}});C.SHA1=Hasher._createHelper(SHA1);C.HmacSHA1=Hasher._createHmacHelper(SHA1);}()); | |
function getProof(){ | |
function t(e) { | |
for (var t = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", n = "", r = 0; e > r; ++r) | |
n += t.substr(Math.floor(Math.random() * t.length), 1); | |
return n | |
} | |
var e = (new Date).getTime() + ":" + t(20), | |
t = 8; | |
for (var i = 0, a = Math.pow(2, 32 - t); ; ) { | |
var o = i.toString(16) + ":" + e; | |
i++; | |
var s = CryptoJS.SHA1(o).toString(); | |
if (parseInt(s.substr(0, 8), 16) < a) | |
return o | |
} | |
} | |
//console.info(getProof()); | |
function generateFingerprint() { | |
var data = {"proof":"14d:1539126642869:Ue8c4bnHUp9D76ZeW6S3","fp2":{"userAgent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/69.0.3497.81Safari/537.36","language":"zh-CN","screen":{"width":1536,"height":864,"availHeight":824,"availWidth":1536,"pixelDepth":24,"innerWidth":584,"innerHeight":754,"outerWidth":1536,"outerHeight":824,"devicePixelRatio":1.25},"timezone":8,"indexedDb":true,"addBehavior":false,"openDatabase":true,"cpuClass":"unknown","platform":"Win32","doNotTrack":"unknown","plugins":"ChromePDFPlugin::PortableDocumentFormat::application/x-google-chrome-pdf~pdf;ChromePDFViewer::::application/pdf~pdf;NativeClient::::application/x-nacl~,application/x-pnacl~","canvas":{"winding":"yes","towebp":true,"blending":true,"img":"b643d8fcaa9007173be066b61e9f8bb742f4a035"},"webGL":{"img":"bd6549c125f67b18985a8c509803f4b883ff810c","extensions":"ANGLE_instanced_arrays;EXT_blend_minmax;EXT_color_buffer_half_float;EXT_frag_depth;EXT_shader_texture_lod;EXT_texture_filter_anisotropic;WEBKIT_EXT_texture_filter_anisotropic;EXT_sRGB;OES_element_index_uint;OES_standard_derivatives;OES_texture_float;OES_texture_float_linear;OES_texture_half_float;OES_texture_half_float_linear;OES_vertex_array_object;WEBGL_color_buffer_float;WEBGL_compressed_texture_s3tc;WEBKIT_WEBGL_compressed_texture_s3tc;WEBGL_compressed_texture_s3tc_srgb;WEBGL_debug_renderer_info;WEBGL_debug_shaders;WEBGL_depth_texture;WEBKIT_WEBGL_depth_texture;WEBGL_draw_buffers;WEBGL_lose_context;WEBKIT_WEBGL_lose_context","aliasedlinewidthrange":"[1,1]","aliasedpointsizerange":"[1,1024]","alphabits":8,"antialiasing":"yes","bluebits":8,"depthbits":24,"greenbits":8,"maxanisotropy":16,"maxcombinedtextureimageunits":32,"maxcubemaptexturesize":16384,"maxfragmentuniformvectors":1024,"maxrenderbuffersize":16384,"maxtextureimageunits":16,"maxtexturesize":16384,"maxvaryingvectors":30,"maxvertexattribs":16,"maxvertextextureimageunits":16,"maxvertexuniformvectors":4096,"maxviewportdims":"[16384,16384]","redbits":8,"renderer":"WebKitWebGL","shadinglanguageversion":"WebGLGLSLES1.0(OpenGLESGLSLES1.0Chromium)","stencilbits":0,"vendor":"WebKit","version":"WebGL1.0(OpenGLES2.0Chromium)","vertexshaderhighfloatprecision":23,"vertexshaderhighfloatprecisionrangeMin":127,"vertexshaderhighfloatprecisionrangeMax":127,"vertexshadermediumfloatprecision":23,"vertexshadermediumfloatprecisionrangeMin":127,"vertexshadermediumfloatprecisionrangeMax":127,"vertexshaderlowfloatprecision":23,"vertexshaderlowfloatprecisionrangeMin":127,"vertexshaderlowfloatprecisionrangeMax":127,"fragmentshaderhighfloatprecision":23,"fragmentshaderhighfloatprecisionrangeMin":127,"fragmentshaderhighfloatprecisionrangeMax":127,"fragmentshadermediumfloatprecision":23,"fragmentshadermediumfloatprecisionrangeMin":127,"fragmentshadermediumfloatprecisionrangeMax":127,"fragmentshaderlowfloatprecision":23,"fragmentshaderlowfloatprecisionrangeMin":127,"fragmentshaderlowfloatprecisionrangeMax":127,"vertexshaderhighintprecision":0,"vertexshaderhighintprecisionrangeMin":31,"vertexshaderhighintprecisionrangeMax":30,"vertexshadermediumintprecision":0,"vertexshadermediumintprecisionrangeMin":31,"vertexshadermediumintprecisionrangeMax":30,"vertexshaderlowintprecision":0,"vertexshaderlowintprecisionrangeMin":31,"vertexshaderlowintprecisionrangeMax":30,"fragmentshaderhighintprecision":0,"fragmentshaderhighintprecisionrangeMin":31,"fragmentshaderhighintprecisionrangeMax":30,"fragmentshadermediumintprecision":0,"fragmentshadermediumintprecisionrangeMin":31,"fragmentshadermediumintprecisionrangeMax":30,"fragmentshaderlowintprecision":0,"fragmentshaderlowintprecisionrangeMin":31,"fragmentshaderlowintprecisionrangeMax":30},"touch":{"maxTouchPoints":0,"touchEvent":false,"touchStart":false},"video":{"ogg":"probably","h264":"probably","webm":"probably"},"audio":{"ogg":"probably","mp3":"probably","wav":"probably","m4a":"maybe"},"vendor":"GoogleInc.","product":"Gecko","productSub":"20030107","browser":{"ie":false,"chrome":true,"webdriver":false},"window":{"historyLength":7,"hardwareConcurrency":8,"iframe":false},"fonts":"Calibri;Century;Haettenschweiler;Marlett;Pristina;SimHei"},"cookies":1,"setTimeout":1,"setInterval":1,"appName":"Netscape","platform":"Win32","syslang":"zh-CN","userlang":"zh-CN","cpu":"","productSub":"20030107","plugins":{"0":"ChromePDFPlugin","1":"ChromePDFViewer","2":"NativeClient"},"mimeTypes":{"0":"application/pdf","1":"PortableDocumentFormatapplication/x-google-chrome-pdf","2":"NativeClientExecutableapplication/x-nacl","3":"PortableNativeClientExecutableapplication/x-pnacl"},"screen":{"width":1536,"height":864,"colorDepth":24},"fonts":{"0":"Calibri","1":"Cambria","2":"Times","3":"Constantia","4":"LucidaBright","5":"Georgia","6":"SegoeUI","7":"Candara","8":"TrebuchetMS","9":"Verdana","10":"Consolas","11":"LucidaConsole","12":"LucidaSansTypewriter","13":"DejaVuSansMono","14":"CourierNew","15":"Courier"}}; | |
data.proof = getProof(); | |
data.fp2.userAgent = "Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/"+ 59 + Math.round(Math.random() * 10)+".0.3497."+Math.round(Math.random() * 100)+"Safari/537.36" | |
data.fp2.canvas.img = CryptoJS.SHA1(Math.random() + "").toString(); | |
data.fp2.webGL.img = CryptoJS.SHA1(Math.random() + "").toString(); | |
return encodeURIComponent(JSON.stringify(data)) | |
} | |
//console.info(generateFingerprint()); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment