akamai-v3-sensor-data-helper
Version:
A Node.js module for decrypting Akamai v3 sensor data. Check out our web app at https://akamai-v3-tools.vercel.app and read the detailed guide at https://medium.com/@glizzykingdreko/akamai-v3-sensor-data-deep-dive-into-encryption-decryption-and-bypass-too
295 lines (282 loc) • 7.95 kB
JavaScript
const fs = require('fs');
const path = require('path');
const akamaiHelper = require('../src');
// Test data
const testPayloads = {
"ver": "wS5KmeE4vP5vBcKRIM2pPQlq4qZivf0B53dgMqmUH4E=",
"fpt": ";-1;dis;,7;true;true;true;180;true;30;30;true;false;-1",
"fpc": "4488",
"ajr": "X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36,1470,0,1470,0,1470,0,8|189|86|en-GB,20030107,8753,956,0,0.819521029409,12147,0,Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36,1470,0,1470,0,1470,0,871866924183,429041,737,405,858,Gecko,cpen:0,i1:0,dm:0,cwen:0,non:1,opc:0,fc:0,sc:0,wrc:1,isc:0,vib:1,bat:1,x11:0,x12:1,5",
"din": [
{
"nal": "en-GB"
},
{
"nps": "20030107"
},
{
"ucs": "8753"
},
{
"she": 956
},
{
"tsd": 0
},
{
"ran": "0.819521029409"
},
{
"xag": 12147
},
{
"ibr": 0
},
{
"ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36"
},
{
"swi": 1470
},
{
"dau": 0
},
{
"asw": 1470
},
{
"wdr": 0
},
{
"wow": 1470
},
{
"pha": 0
},
{
"hal": 871866924183
},
{
"hz1": 429041
},
{
"wih": 737
},
{
"wiw": 405
},
{
"ash": 858
},
{
"nap": "Gecko"
},
{
"adp": "cpen:0,i1:0,dm:0,cwen:0,non:1,opc:0,fc:0,sc:0,wrc:1,isc:0,vib:1,bat:1,x11:0,x12:1"
},
{
"npl": 5
}
],
"eem": "do_en,dm_en,t_en",
"ffs": "",
"vev": "3,35296;3,371930;",
"inf": "",
"ajt": "7,4",
"kev": "",
"dme": "0,45,-1,-1,-1,-1,-1,-1,-1,-1,-1;1,5526528,-1,-1,-1,-1,-1,-1,-1,-1,-1;",
"mev": "0,1,34936,394,287;1,1,34942,388,279;2,1,34949,384,275;3,1,34957,382,271;4,1,34965,380,269;5,1,34973,378,267;6,1,34981,377,265;7,1,34989,375,263;8,1,34997,373,262;9,1,35005,371,260;10,1,35013,369,259;11,1,35021,367,257;12,1,35028,365,255;13,1,35037,363,254;14,1,35045,361,252;15,1,35053,359,250;16,1,35061,357,248;17,1,35069,355,247;18,1,35082,354,246;19,1,35085,352,244;20,1,35093,350,244;21,1,35101,348,243;22,1,35109,347,242;23,1,35117,346,241;24,1,35125,344,240;25,1,35133,343,239;26,1,35141,343,239;27,1,35149,342,239;28,1,35157,342,238;29,1,35165,342,238;30,3,35298,342,238,-1;31,1,370966,394,264;32,1,370966,394,264;33,1,370968,394,263;34,1,370976,394,263;35,1,370984,394,262;36,1,370992,394,262;37,1,371000,394,262;38,1,371008,393,262;39,1,371017,392,261;40,1,371024,391,260;41,1,371032,389,260;42,1,371040,387,259;43,1,371048,385,258;44,1,371056,383,257;45,1,371064,379,255;46,1,371072,376,253;47,1,371080,373,251;48,1,371089,369,249;49,1,371096,365,246;50,1,371104,362,243;51,1,371112,357,240;52,1,371120,353,237;53,1,371128,350,234;54,1,371136,348,233;55,1,371144,345,231;56,1,371152,342,229;57,1,371160,340,228;58,1,371168,339,227;59,1,371176,338,226;60,1,371184,337,225;61,1,371192,336,225;62,1,371200,336,225;63,1,371208,336,225;64,1,371651,336,225;65,1,371657,332,224;66,1,371665,330,222;67,1,371674,328,221;68,1,371681,326,219;69,1,371689,325,217;70,1,371699,324,216;71,1,371705,323,214;72,1,371713,322,212;73,1,371721,322,211;74,1,371729,322,210;75,1,371737,321,209;76,1,371745,320,207;77,1,371753,320,206;78,1,371761,320,205;79,1,371769,320,205;80,1,371777,320,204;81,1,371785,320,204;82,1,371793,320,204;83,1,371801,320,203;84,3,371935,320,203,-1;",
"doe": "0,45,-1,-1,-1;",
"pur": "https://tickets.fcbayern.com/internetverkauf/EventList.aspx",
"pev": "",
"mst": [
{
"kevl": 1
},
{
"mevl": 21193143
},
{
"tevl": 32
},
{
"devl": 45
},
{
"dmvl": 5526574
},
{
"pevl": 0
},
{
"tovl": 26719730
},
{
"delt": 5526529
},
{
"it": 0
},
{
"sts": 1743733848366
},
{
"fct": 1
},
{
"dd2": 18653
},
{
"kc": 0
},
{
"mc": 85
},
{
"ww8": 3108
},
{
"pc": 2
},
{
"tc": 0
},
{
"ssts": 5526533
},
{
"tst": 26665496
},
{
"rval": "-1"
},
{
"rcfp": "-1"
},
{
"nfas": 30261693
},
{
"jsrf": "PiZtE"
},
{
"jsrf1": 39064
},
{
"jsrf2": 80
},
{
"signals": "0"
},
{
"mwd": "0"
},
{
"hea": ""
},
{
"dvc": "93h9dhdYdh9iYeveufko,13,f+b+l+g+i+j+e+k+c+"
},
{
"srd": "0"
}
],
"o9": 0,
"tev": "",
"sde": "0,0,0,0,1,0,0",
"pmo": "",
"dpw": "",
"pac": "",
"per": "99999944949322244999",
"dsi": [
{
"get": ""
},
{
"set": "0"
},
{
"ico": "070f409b82df3bdd2f51a6415c7895353c153c47fe6dd8a0f87f3d14c46ccb2b"
},
{
"ift": "3"
},
{
"xof": "8,5,1,1,8"
},
{
"xot": "8,5,1,1,8"
},
{
"wev": "NA;wev;NA"
},
{
"wre": "NA;wre;NA"
},
{
"wdr": "0"
},
{
"iks": ""
},
{
"lds": "1"
},
{
"sst": ""
}
],
"wsl": "2248146944,39969421,24532633,50,209,1,1,1,0,1,,,,,,0,,,1,1",
"hls": "-1,,,1,1",
"pde": "",
"oev": "",
"if": "",
"fwd": [
{
"fmh": ""
},
{
"fmz": "2"
},
{
"ssh": "6d9faae3a85b2727ec5b802ee76b75a2c8a736774ef9c0024c9b875de06f1fb0"
}
]
};
// Test function
async function runTests() {
console.log("Starting encryption/decryption tests...\n");
// Read the file content from examples directory
const fileData = fs.readFileSync("./scripts/example-2.js", 'utf8');
const encryptResult = akamaiHelper.encrypt(
payload=testPayloads,
cookieHash=3289904,
fileContent=fileData,
fileHash=null
);
if (!encryptResult.success) {
throw new Error(`Encryption failed: ${encryptResult.message}`);
}
console.log("✓ Encryption successful");
const decryptResult = akamaiHelper.decrypt(
sensorData=encryptResult.data.sensor_data,
fileContent=fileData,
fileHash=null
);
if (!decryptResult.success) {
throw new Error(`Decryption failed: ${decryptResult.message}`);
}
console.log("✓ Decryption successful");
// compare original and decrypted data
const originalStr = typeof testPayloads === 'object' ? JSON.stringify(testPayloads) : testPayloads;
const decryptedStr = decryptResult.data;
if (originalStr === decryptedStr) {
console.log("✓ Data matches original");
} else {
console.log("✗ Data mismatch:");
console.log("Original:", originalStr);
console.log("Decrypted:", decryptedStr);
}
}
// Run the tests
runTests().catch(console.error);