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 |