CRC32() în MySQL

Funcții matematice MySQL 5.0+

Calculează suma de control CRC32 a unui text: un număr pe 32 de biți.

Sintaxă
CRC32(text)

Ce face CRC32()

CRC32() transformă un text într-un număr fără semn. Același text dă mereu același număr, așa că funcția e folosită pentru împărțirea datelor în grupuri (sharding) sau pentru indexarea rapidă a textelor lungi.

Nu este o funcție criptografică: două texte diferite pot avea același CRC32.

Parametri

Parametru Descriere
text Textul pentru care se calculează suma.

Ce returnează

Un număr între 0 și 4294967295.

Exemple

Exemplul 1: Sume de control și împărțire în 4 grupe

CREATE TABLE utilizatori (email VARCHAR(50));
INSERT INTO utilizatori VALUES ('ana@exemplu.ro'), ('dan@exemplu.ro'), ('ioana@exemplu.ro');

SELECT email, CRC32(email) AS crc, CRC32(email) % 4 AS grupa FROM utilizatori;

Rezultat

+------------------+------------+-------+
| email            | crc        | grupa |
+------------------+------------+-------+
| ana@exemplu.ro   | 2798263945 |     1 |
| dan@exemplu.ro   | 2005744288 |     0 |
| ioana@exemplu.ro | 1766205756 |     0 |
+------------------+------------+-------+

Greșeli frecvente

  • Folosești CRC32() ca să verifici parole sau date sensibile. Este ușor de inversat prin încercări; folosește SHA2().

Comenzi înrudite

  • SHA2(): Calculează suma de control SHA-2 (SHA-224, SHA-256, SHA-384 sau SHA-512) a unui text.
  • HEX() și UNHEX(): HEX() transformă un număr sau un text în hexazecimal; UNHEX() face conversia inversă.