Kódolt adat visszafejtése

Kódolt adat visszafejtése
2018-04-13T22:30:05+02:00
2018-04-19T09:27:55+02:00
2022-10-15T21:36:09+02:00
teodorka99
Sziasztok,

Egy weboldalon a form kitöltése és elküldése után a háttérben az adat egy POST-al megy el ami "application/x-base64-frpc", base64-el van kódolva. Ha a POST adatot visszafejtem (base64 decode) akkor megtalálom benne az általam megadott adatokat. A POST végén található egy adat amit nem tudok értelmezni: "m162c0728827m2f5".

Feltételezésem szerint ez valami bekódolt timestamp lesz, mert ha egymás után többször küldöm el a formot akkor a következő adatokat kapom:
m162c0728827m2f5
m162c0728ed7m316
m162c0729c6cm339
m162c073a0d0m3d5
m162c07e7685m915

A kérdésem az lenne, hogy mi lehet a POST végén a bekódolt adat és hogyan lehet újra generálni?

Köszönöm a segitséget.
Teó
Mutasd a teljes hozzászólást!
Az első "m" utáni szám tényleg időbélyegnek tűnik, hexában, méghozzá a Javascript Date típusa által elvárt formában, vagyis a Unix Epoch óta eltelt ezredmásodpercek száma.

A példáidat dekódolva egy JS konzolon:

new Date(0x162c0728827) Fri Apr 13 2018 21:19:14 GMT+0200 (Közép-európai nyári idő ) new Date(0x162c0728ed7) Fri Apr 13 2018 21:19:15 GMT+0200 (Közép-európai nyári idő ) new Date(0x162c0729c6c) Fri Apr 13 2018 21:19:19 GMT+0200 (Közép-európai nyári idő ) new Date(0x162c073a0d0) Fri Apr 13 2018 21:20:26 GMT+0200 (Közép-európai nyári idő ) new Date(0x162c07e7685) Fri Apr 13 2018 21:32:16 GMT+0200 (Közép-európai nyári idő )
(Gondolom ezeket kis idővel a kérdésed feltétele előtt generáltad.)

Hogy a második "m" betű utáni szám mit jelent, az jó kérdés. Annyi látszik csak, hogy három hexa számjegy, tehát 0 és 4095 közötti értékeket tud tárolni, valamint hogy monoton növekszik a példáidban. Ránézésre nem az időt ábrázolja, hanem valami más információt.
Mutasd a teljes hozzászólást!

  • Weboldal forrásában kellene megnézni, hogy milyen javascript kód rakja össze a POST-olt adatot. A weboldal url-jét meg tudod adni?
    Mutasd a teljes hozzászólást!
  • Feltételezésem szerint ez valami bekódolt timestamp lesz,

    Szerintem kicsi az esély arra, hogy ez - "m162c0728827m2f5" - időbélyeg:

    <p>Kattintson a gombra a base-64 kódolású karakterláncot dekódolni.</p> <button onclick="myFunction()">Apr 14, 2018</button> <p><strong>Megjegyzés:</strong> A atob() metódus nem támogatott az IE9 és korábbi verzióknál.</p> <p id="demo"></p> <script> function myFunction() { var timestamp_str = Date.parse("Apr 14, 2018"); var enc = window.btoa(timestamp_str); var dec = window.atob(enc); var res = "Kódolt időbélyeg: " + enc + "<br>" + "Dekódolt időbélyeg: " + dec; document.getElementById("demo").innerHTML = res; } </script>
    Mutasd a teljes hozzászólást!
  • A leírás alapján (de igazából ránézésre is) ezek az "m162c...m..." cuccok már visszafejtésre kerültek Base64-ből.
    Mutasd a teljes hozzászólást!
  • Az első "m" utáni szám tényleg időbélyegnek tűnik, hexában, méghozzá a Javascript Date típusa által elvárt formában, vagyis a Unix Epoch óta eltelt ezredmásodpercek száma.

    A példáidat dekódolva egy JS konzolon:

    new Date(0x162c0728827) Fri Apr 13 2018 21:19:14 GMT+0200 (Közép-európai nyári idő ) new Date(0x162c0728ed7) Fri Apr 13 2018 21:19:15 GMT+0200 (Közép-európai nyári idő ) new Date(0x162c0729c6c) Fri Apr 13 2018 21:19:19 GMT+0200 (Közép-európai nyári idő ) new Date(0x162c073a0d0) Fri Apr 13 2018 21:20:26 GMT+0200 (Közép-európai nyári idő ) new Date(0x162c07e7685) Fri Apr 13 2018 21:32:16 GMT+0200 (Közép-európai nyári idő )
    (Gondolom ezeket kis idővel a kérdésed feltétele előtt generáltad.)

    Hogy a második "m" betű utáni szám mit jelent, az jó kérdés. Annyi látszik csak, hogy három hexa számjegy, tehát 0 és 4095 közötti értékeket tud tárolni, valamint hogy monoton növekszik a példáidban. Ránézésre nem az időt ábrázolja, hanem valami más információt.
    Mutasd a teljes hozzászólást!

  • Elfogadom és én tévedtem.
    Az utolsó 3 karakter viszont érdekes módon ua. dátumot adná, ha annak tekintenénk...
    Thu Jan 01 1970 01:00:00 GMT+0100
    Thu Jan 01 1970 01:00:00 GMT+0100
    Thu Jan 01 1970 01:00:00 GMT+0100
    .....
    Mutasd a teljes hozzászólást!
  • Az utolsó 3 karakter viszont érdekes módon ua. dátumot adná, ha annak tekintenénk

    Nem olyan meglepő, ha belegondolsz. A Unix Epoch után eltelt 4095 ezredmásodperc az 4.095 másodperc, bőven kevesebb egy napnál. Vagyis ha 12 bites számokat Java/Javascript időbélyegként értelmezel, csak 1970 január 1-i dátum jöhet ki (de még Unix időbélyeg esetében is, mert 4095 másodperc kevesebb mint két óra hossza).
    Mutasd a teljes hozzászólást!

  • Sejtettem =>

    Mutasd a teljes hozzászólást!
  • Szia.
    Köszi, sokat segitettél. Sikerült megoldanom a problémát.
    Mutasd a teljes hozzászólást!
  • Sikerült megoldanom a problémát.

    És ha nem titok, hogyan?

    Megj: Esetleg másoknak később jól jönne...
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd