Ce face SHA1() și SHA()
SHA1() calculează o sumă de control de 160 de biți, afișată ca 40 de cifre hexazecimale. SHA() este sinonim pentru SHA1(). Era considerată mai sigură decât MD5(), dar și SHA-1 are coliziuni cunoscute.
Funcțiile nu mai există pe serverul nostru de test (MySQL 26.7): apelul dă eroarea FUNCTION ... SHA1 does not exist. Exemplele arată rezultatul din MySQL 8.4. Pentru cod nou, folosește SHA2().
Parametri
| Parametru | Descriere |
|---|---|
text |
Textul pentru care se calculează suma. |
Ce returnează
Un text de 40 de caractere hexazecimale sau NULL.
Exemple
Exemplul 1: SHA1() și sinonimul SHA()
SELECT SHA1('abc') AS sha1, SHA('abc') = SHA1('abc') AS identice;
Rezultat în MySQL 8.4
+------------------------------------------+----------+
| sha1 | identice |
+------------------------------------------+----------+
| a9993e364706816aba3e25717850c26c9cd0d89d | 1 |
+------------------------------------------+----------+
Exemplul 2: Înlocuitorul recomandat: SHA2()
SELECT SHA2('abc', 256) AS sha256;
Rezultat
+------------------------------------------------------------------+
| sha256 |
+------------------------------------------------------------------+
| ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad |
+------------------------------------------------------------------+
Greșeli frecvente
- Folosești
SHA1()pentru parole sau semnături. Nu mai este sigur, iar funcția a fost eliminată; foloseșteSHA2()pentru sume de control și algoritmi dedicați (bcrypt, Argon2) pentru parole.