Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.09.12
Prihlásený: 20.09.12
Príspevky: 3
Témy: 1
Príspevok NapísalOffline : 19.09.2012 15:55

Kto pomôže, prosím? Potrebujem vyriešiť spätné dešifrovanie textu, ktorý si zašifrujem týmto spôsobom:

Kód:
$message="toto-je-buduci-zasirovany-text";
$key="heslo";

function GetSign($key, $message) {
 return strtoupper(hash_hmac('sha256', pack('A*', $message), pack('A*', $key)));
  }

$kod=GetSign($key, $message);
echo $kod ;


Výsledkom šifrovania je hodnota :
5B1229E4F78DE6BF8B027E94F285BF3D2DD700D11723A1C715A6B04119224ADD

Potrebujem vytvoriť funkciu, z ktorej spätne po dešifrovaní hodnoty premennej $kod dostanem textovú hodnotu $message. Teda "toto-je-buduci-zasirovany-text".

Veľmi pekne ďakujem za pomoc. Dúfam, že sa nájde niekto, pre koho je táto vec rutina, pretože ja som ozaj v koncoch.Už som sa pokúšal o kadečo, ale nemám dostatok znalostí z programovania v PHP, čo je nevýhoda na mojej strane. Ale zas človek sa učí celý život.


Offline

Skúsený užívateľ
Skúsený užívateľ
Decode hash_hmac

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 19.09.2012 16:06

Dešifrovať hash? Ťažko. Hashovanie nie je šifrovanie, je to len one-way. Pokiaľ chceš funkcionalitu, aby si mohol potom dané hodnoty spätne získať, musíš použiť šifrovací algoritmus, nie hashovací.







_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.09.12
Prihlásený: 20.09.12
Príspevky: 3
Témy: 1
Príspevok Napísal autor témyOffline : 20.09.2012 13:19

walther píše:
Dešifrovať hash? Ťažko. Hashovanie nie je šifrovanie, je to len one-way. Pokiaľ chceš funkcionalitu, aby si mohol potom dané hodnoty spätne získať, musíš použiť šifrovací algoritmus, nie hashovací.

Tak potom ozaj neviem, čo s tým urobiť, pretože rozumiem tomu - použiť šifrovací algoritmus, následne dešifrovať - to som samozrejme odskúšal, zašifrovať a spätne dešifrovať s použitím príslušnej funkcie - fungovalo to skvele. Ale problém je v niečom inom. Príklad, ktorý som uviedol vlastne pochádza z manuálu k TrustPay. Uvedeným PHP príkladom sa hashujú informácie zasielané na rozhranie platobnej brány. Tak ja teraz neviem, ako ho banka na svojej strane dokáže rozšifrovať, alebo neviem, ako by som to nazval inak (odbornejšie). Teda získať nezašifrovanú - teda čistú relevantnú informáciu z $message, ktorá príde na vstup banky, ako 5B1229E4F78DE6BF8B027E94F285BF3D2DD700D11723A1C715A6B04119224ADD a ktorá vlastne obsahuje nejaké dáta, teda v tomto prípade $message="toto-je-buduci-zasirovany-text". A ako odpoveď mi banka pošle spätne obdobný kód, ktorý zas ja potrebujem dekódovať (dešifrovať, rozkódovať, alebo ako to inak nazvať neviem). A k tejto veci potrebujem pochopiť - vysvetliť - popísať funkčný príklad. Veľmi pekne ďakujem za pomoc.


Offline

Skúsený užívateľ
Skúsený užívateľ
Decode hash_hmac

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 20.09.2012 13:58

Môžeš dať link na ten manuál, nech to nemusím hľadať a tipovať, či je to ono?

Hashovanie je jednostranná záležitosť, využívaná napríkad pri overovaní hesla užívateľa, aby nebolo nutné ukladať heslo v plain formáte do db. Pre registrácii usera sa urobí hash, pri prihlasovaní sa vytvára rovnakým spôsobom a porovnáva sa s hodnotou v db. Porovnávajú sa ale len hashe, nikdy nie samotné heslá. Žiadne dekódovanie sa nedeje, pretože to proste nejde. Na získanie hodnoty sa používajú potom rainbow tables, brute force a podobne. Problém s tým je ale v tom, že ak je heslo/dáta zložité a bolo ešte aj saltnuté, je to takmer nemožné, pretože by to trvalo príliš dlho, aby to malo zmysel. Hash sa nikdy nepoužíva v prípade, keď potrebuješ získať dané dáta do pôvodnej podoby....

Čiže by som skôr tipoval, že pri TrustPay to funguje obdobne, teda na identifikáciu človeka (transakcie?), nie na posielanie údajov na ďalšie spracovanie...







_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.09.12
Prihlásený: 20.09.12
Príspevky: 3
Témy: 1
Príspevok Napísal autor témyOffline : 20.09.2012 14:35

walther píše:
Môžeš dať link na ten manuál, nech to nemusím hľadať a tipovať, či je to ono?

Hashovanie je jednostranná záležitosť, využívaná napríkad pri overovaní hesla užívateľa, aby nebolo nutné ukladať heslo v plain formáte do db. Pre registrácii usera sa urobí hash, pri prihlasovaní sa vytvára rovnakým spôsobom a porovnáva sa s hodnotou v db. Porovnávajú sa ale len hashe, nikdy nie samotné heslá. Žiadne dekódovanie sa nedeje, pretože to proste nejde. Na získanie hodnoty sa používajú potom rainbow tables, brute force a podobne. Problém s tým je ale v tom, že ak je heslo/dáta zložité a bolo ešte aj saltnuté, je to takmer nemožné, pretože by to trvalo príliš dlho, aby to malo zmysel. Hash sa nikdy nepoužíva v prípade, keď potrebuješ získať dané dáta do pôvodnej podoby....

Čiže by som skôr tipoval, že pri TrustPay to funguje obdobne, teda na identifikáciu človeka (transakcie?), nie na posielanie údajov na ďalšie spracovanie...


Veľmi pekne ďakujem, už som to konečne pochopil. Asi som si stál dlho na "kábli", pretože ma vôbec nenapadlo, že je to v podstate tak jednoduché a že sa v princípe hashujú informácie z dát zasielané do a späť a tie sa následne porovnávajú (teda identifikuje sa či hashovaná hodnota je rovnaká s generovanou hodnotou v systéme na základe daného algoritmu a kľúča (hesla)). Len ja som v tom videl neviem prečo, neriešiteľný problém a stále som chcel "niečo dešifrovať". Už chápem, prečo ma Google posielal pri mojich dotazoch "do teplých krajín" :) Ale človek sa učí celý život a hádam tomu mozgu je potrebné nechať niekedy aj oddýchnuť pretože hľadá zložitosť vo veciach, ktoré vôbec nie sú zložité. Ešte raz - veľmi pekne ďakujem za "nakopnutie". Veľmi ste mi pomohol.


Odpovedať na tému [ Príspevkov: 5 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. XOR encode/decode ?

v PHP, ASP

3

280

30.03.2013 11:23

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Base64 decode ... zaplatim 2 eura

v PHP, ASP

5

730

12.08.2010 10:46

chrono Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra