Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Autor | Správa |
---|
Registrovaný: 19.09.12 Prihlásený: 20.09.12 Príspevky: 3 Témy: 1 | 1 |
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.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 | 66 Bydlisko: Žilina |
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, ... |
|
Registrovaný: 19.09.12 Prihlásený: 20.09.12 Príspevky: 3 Témy: 1 | 1 |
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.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 | 66 Bydlisko: Žilina |
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, ... |
|
Registrovaný: 19.09.12 Prihlásený: 20.09.12 Príspevky: 3 Témy: 1 | 1 |
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.
|
|
Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v PHP, ASP | 3 | 282 | 30.03.2013 11:23 BX | | v PHP, ASP | 5 | 731 | 12.08.2010 10:46 chrono |
|