PHP - hash
Třída
Metoda - hash
(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)
Funkce hash() slouží k zahashování určitého řetězce.
Proces hashování vytvoří 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.
Seznam algoritmů:
| Algoritmus | Počet 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 |
Algoritmus sha je jeden z nejlepších, md5 a
podobné jsou dnes již poměrně nebezpečné.
Procedurální
- function hash (string $algo, string $data, bool $raw_output = false) : string
Parametry
| Název | Datový typ | Výchozí hodnota | Popis |
|---|---|---|---|
| $algo | string | Algoritmus hashe (např. Seznam všech algoritmů je k dispozici níže. | |
| $data | string | Hodnota k zahashování. | |
| $raw_output | bool | false | Posledním nepovinným parametrem můžeme přepnout binární data (TRUE) a hexadecimální data (FALSE, výchozí). |
Návratové hodnoty
Vrací: string
Hash daného řetězce.
Příklady
<?php
echo hash('sha512', 'moje tajné heslo' . 'moje_sůl');
Související manuály
- function sha1 (string $str, bool $raw_output = false) : string

