Ce face crc32
CRC32 este o sumă de control folosită în arhivele ZIP, în rețea și în fișierele PNG pentru a detecta date stricate la transfer. crc32 o returnează ca număr întreg pozitiv.
Este foarte rapidă și utilă pentru a împărți date în grupuri (de exemplu, să repartizezi utilizatori pe servere sau în variante de test A/B). Nu are nicio valoare pentru securitate: coliziunile se găsesc ușor.
Parametri
| Parametru | Descriere |
|---|---|
$string |
Textul pentru care se calculează suma. |
Ce returnează
Suma de control, ca număr întreg.
Exemple
Exemplul 1: Ca număr și ca text hexazecimal
hash("crc32b", ...) dă aceeași valoare, direct în format hexazecimal.
<?php
$suma = crc32("dexblog");
echo $suma . "\n";
echo dechex($suma) . "\n";
echo hash("crc32b", "dexblog");
Rezultat
2455702576
925f0c30
925f0c30
Exemplul 2: Împărțirea stabilă în grupuri
Același email ajunge mereu în același grup, la fiecare rulare.
<?php
foreach (["ana@exemplu.ro", "mihai@exemplu.ro", "ioana@exemplu.ro"] as $email) {
$grup = crc32($email) % 2 === 0 ? "A" : "B";
echo "$email => varianta $grup\n";
}
Rezultat
ana@exemplu.ro => varianta B
mihai@exemplu.ro => varianta A
ioana@exemplu.ro => varianta A
Greșeli frecvente
- Folosești
crc32ca identificator unic. Cu multe valori, coliziunile apar repede: două texte diferite primesc același număr.
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.sha1: Calculează amprenta SHA-1 a unui text: 40 de caractere hexazecimale. Nu mai este recomandată pentru securitate.