Ce face sha1
sha1 funcționează ca md5, dar produce o amprentă mai lungă, de 40 de caractere. Git o folosește pentru a identifica fiecare commit.
Din 2017 s-au construit în practică două documente diferite cu aceeași amprentă SHA-1, așa că nu o mai folosi pentru semnături sau parole. Pentru amprente sigure folosește hash("sha256", ...). sha1_file($fisier) calculează amprenta unui fișier.
Parametri
| Parametru | Descriere |
|---|---|
$string |
Textul pentru care se calculează amprenta. |
$binary |
Opțional. true returnează 20 de octeți binari. |
Ce returnează
Amprenta SHA-1, ca text de 40 de caractere hexazecimale.
Exemple
Exemplul 1: Amprenta unui text
<?php
$amprenta = sha1("parola123");
echo $amprenta . "\n";
echo strlen($amprenta) . " caractere";
Rezultat
77862b117c20a39a99f3378e642ea59193c16dab
40 caractere
Exemplul 2: ETag pentru un fișier
Amprenta fișierului se schimbă doar când se schimbă conținutul. Browserul o poate folosi ca să nu descarce din nou un fișier neschimbat.
<?php
file_put_contents("stil.css", "body { color: #222; }");
echo 'ETag: "' . sha1_file("stil.css") . '"';
Rezultat
ETag: "5571411f954d5fb565b43b3d32b51045677836b4"
Greșeli frecvente
- Folosești
sha1pentru parole. La fel ca MD5, este prea rapid și ușor de spart prin încercări. Foloseștepassword_hash.
Comenzi înrudite
md5: Calculează amprenta MD5 a unui text: 32 de caractere hexazecimale. Bună pentru sume de control, nu pentru parole.hash: Calculează amprenta unui text cu algoritmul ales: sha256, sha512, sha3-256, xxh3 și multe altele.hash_hmac / hash_equals: Calculează o semnătură HMAC: o amprentă care depinde și de o cheie secretă. Dovedește că datele nu au fost modificate.