hash - Český PHP manuál

PHP Manuál Textové řetězce hash - Český PHP manuál

Funkce hash již dle svého názvu slouží k zahashování určitého řetězce. Proces hashování vytvoří v tzv. otisk (např. hesla), ze kterého nelze získat původní hodnotu. Z bezpečnostních důvodů by server při ověřování uživatele neměl znát jeho heslo, ale pouze jeho otisk. Jakmile uživatel heslo zadá, vytvoří se jeho otisk a ten se porovná s otiskem uloženým na serveru. Pokud souhlasí, bude uživatel přihlášen. Obvykle se do funkce kromě samotného hesla ještě přidává tzv. sůl (salt) v podobě nějakého konstantního řetězce. Teorii okolo hashování bude věnován samostatný článek.

Parametry

Algoritmus hashe (např. 'md5' nebo 'sha512'). Dále hodnota k zahashování. Posledním nepovinným parametrem můžeme přepnout binární data (true) a hexadecimální data (false, výchozí).

Návratová hodnota

Hash daného řetězce.

Příklad

<?php
echo hash('sha512', 'moje tajné heslo' . 'moje_sůl');

Výstup:

fd0f826a721460283ec5bd1fa76b7a38243b5538a796528999479b0802593ceb9061491b2d03449ee16cd8e21ca8272f577f7bc92e1000e898c67c05ef873f3b

Algoritmus sha je jeden z nejlepších, md5 a podobné jsou dnes již poměrně nebezpečné.

Seznam algoritmů:

Algoritmus Znaků
md2 32
md4 32
md5 32
sha1 40
sha256 64
sha384 96
sha512 128
ripemd128 32
ripemd160 40
ripemd256 64
ripemd320 80
whirlpool 128
tiger128,3 32
tiger160,3 40
tiger192,3 48
tiger128,4 32
tiger160,4 40
tiger192,4 48
snefru 64
gost 64
adler32 8
crc32 8
crc32b 8
haval128,3 32
haval160,3 40
haval192,3 48
haval224,3 56
haval256,3 64
haval128,4 32
haval160,4 40
haval192,4 48
haval224,4 56
haval256,4 64
haval128,5 32
haval160,5 40
haval192,5 48
haval224,5 56
haval256,5 64

 

  Aktivity (1)

Manuál pro vás napsal David Čápka
Avatar
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.

Miniatura
Všechny články v sekci
Textové řetězce - Český PHP manuál

 

 

Komentáře
Zobrazit starší komentáře (5)

Avatar
Honza Bittner
Redaktor
Avatar
Honza Bittner:

jinak .. co se používá jako sůl .. nějaké slova .. DEVBOOK, SEZNAM, GOOGLE nebo blbosti NDSFJKLNSKJNDJDFNKJ atp ? :)

Odpovědět 2.5.2013 21:18
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Honza Bittner
Jiří Gracík:

třeba u uživatelů jejich jméno :) je jedno jestli sůl bude "AFEFjefajwERAe" nebo s "mojeSUPERsůl" ;)

Odpovědět 2.5.2013 21:23
Creating websites is awesome till you see the result in another browser ...
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Jiří Gracík
Honza Bittner:

no .. myslím že je lepší nějaká blbost :D

Odpovědět 2.5.2013 21:24
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Honza Bittner
Jiří Gracík:

a já si myslím že je to úplně jedno :) Počkáme na někoho PHP-znalého ;)

Odpovědět 2.5.2013 21:29
Creating websites is awesome till you see the result in another browser ...
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Honza Bittner
Jiří Gracík:

myslím že sůl "kočička" a halda znaků vygenerovaná hodinovým mlácením hlavou o klávesnici uděla stejně dobrou práci :D

Odpovědět  +1 2.5.2013 21:33
Creating websites is awesome till you see the result in another browser ...
Avatar
Odpovídá na Jiří Gracík
Luboš Běhounek (Satik):

Je to úplně fuk, jen to chce mít u každého uživatele sůl jinou :)

A čím delší, tím lepší (co se bezpečnosti týče).

Odpovědět 2.5.2013 21:34
:)
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Jiří Gracík:

Dobrá, a nevíš ještě jak konkrétně to funguje :)?

Odpovědět 2.5.2013 21:38
Creating websites is awesome till you see the result in another browser ...
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Jiří Gracík:

http://m.metamorphosite.com/…ata-software

koukám na tohle a už chápu že to je poměrně bezpečný :D ale jakto že to nejde "dehashovat" :P?

Odpovědět 2.5.2013 21:40
Creating websites is awesome till you see the result in another browser ...
Avatar
Odpovídá na Jiří Gracík
Luboš Běhounek (Satik):

"Ale stejně mě zaráží, jakto, že když to zahashuju tak to nejde odhashovat ... na to přece musí být nějaký algorytmus ne? nebo nevíte někdo jak to konkrétně funguje :)?"

Hashování je jen otisk původních dat, pokusím se to nějak názorně vysvětlit, příklad je to sice blbý, ale lepší mě teď nenapadl :D

Představ si, že bys uměl dělat andělíčky ve sněhu tak dobře, že vždy budeš mít ten otisk úplně stejný jako minule, takže bys pro ověření totožnosti používal ten otisk :)

No a teď ho někdo bude chtít napodobit - ten otisk ovlivňuje hrozně moc věcí, jak jsi vysoký, jak máš kterou část kde širokou, třeba i jak máš dlouhé různé kosti, ale i kolik která část těla váží - můžeš mít těžké kosti a pak ten obtisk bude hlubší-jiný (než třeba od někoho, kdo má kosti lehké, ale jinak je identický).
Z toho se špatně zjišťuje, jak přesně vypadáš, dá se jen odhadovat.

U těch hashovacích algoritmů je to ještě složitější, z hashe (na rozdíl od otisku ve sněhu, kde vidíš, že má třeba hlavu spíš velkou než malou) nevyčteš nic, stačí třeba místo čísla 1 hashovat číslo 2 a celý hash je už úplně jiný.

Odpovědět  +4 2.5.2013 21:56
:)
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Jiří Gracík:

Okey, díky :) Jak jsem si pročítal ten postup, tak třeba od tý doby co tam jsou xory tak se to nedá jednoznačně vrátit :P Už tomu rozumím :)

Odpovědět 3.5.2013 8:24
Creating websites is awesome till you see the result in another browser ...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 15. Zobrazit vše