Kategorien:

Zeichenfolgen- und Binärfunktionen (Kryptografischer Hash)

SHA2 , SHA2_HEX

Gibt eine hexadezimal-codierte Zeichenfolge zurück, die den N-Bit-SHA-2-Nachrichtenhash enthält, wobei N die angegebene Größe des Ausgabedigests ist.

Diese Funktionen sind gleichbedeutend.

Syntax

SHA2( <msg> [, <digest_size>] )

SHA2_HEX( <msg> [, <digest_size>] )
Copy

Argumente

Benötigt:

msg

Ein Zeichenfolgenausdruck, die zu hashende Nachricht

Optional:

digest_size

Größe (in Bits) der Ausgabe, die der spezifischen SHA-2-Funktion entspricht, die zum Verschlüsseln der Zeichenfolge verwendet wird:

224 = SHA-224

256 = SHA-256 (Standard)

384 = SHA-384

512 = SHA-512

SHA-512/224 und SHA-512/256 werden nicht unterstützt.

Rückgabewerte

Der Datentyp des zurückgegebenen Werts ist VARCHAR.

Nutzungshinweise

  • Verwenden Sie diese Funktion nicht zur Verschlüsselung einer Meldung, die Sie entschlüsseln müssen. Diese Funktion hat keine entsprechende Entschlüsselungsfunktion. (Die Länge der Ausgabe ist unabhängig von der Länge der Eingabe. Die Ausgabe hat nicht notwendigerweise genug Bits, um alle Informationen der Eingabe zu enthalten, sodass es nicht möglich ist, eine Funktion zu schreiben, die alle möglichen gültigen Eingaben entschlüsseln kann).

    Diese Funktion ist für andere Zwecke gedacht, z. B. für die Berechnung einer Prüfsumme zum Erkennen von Datenfehlern.

    Wenn Sie Daten verschlüsseln und entschlüsseln müssen, verwenden Sie die folgenden Funktionen:

Beispiele

SELECT sha2('Snowflake', 224);

----------------------------------------------------------+
                  SHA2('SNOWFLAKE', 224)                  |
----------------------------------------------------------+
 6267d3d7a59929e6864dd4b737d98e3ef8569d9f88a7466647838532 |
----------------------------------------------------------+
Copy

Der Datentyp der Ausgabe ist eine Zeichenfolge (VARCHAR) und kann in einer VARCHAR-Spalte gespeichert werden:

Erstellen Sie eine Tabelle, und füllen Sie diese:

CREATE TABLE sha_table(
    v VARCHAR, 
    v_as_sha1 VARCHAR,
    v_as_sha1_hex VARCHAR,
    v_as_sha1_binary BINARY,
    v_as_sha2 VARCHAR,
    v_as_sha2_hex VARCHAR,
    v_as_sha2_binary BINARY
    );
INSERT INTO sha_table(v) VALUES ('AbCd0');
UPDATE sha_table SET 
    v_as_sha1 = SHA1(v),
    v_as_sha1_hex = SHA1_HEX(v),
    v_as_sha1_binary = SHA1_BINARY(v),
    v_as_sha2 = SHA2(v),
    v_as_sha2_hex = SHA2_HEX(v),
    v_as_sha2_binary = SHA2_BINARY(v)
    ;
Copy

Hier sind die Abfrage und die Ausgabe:

SELECT v, v_as_sha2, v_as_sha2_hex
  FROM sha_table
  ORDER BY v;
+-------+------------------------------------------------------------------+------------------------------------------------------------------+
| V     | V_AS_SHA2                                                        | V_AS_SHA2_HEX                                                    |
|-------+------------------------------------------------------------------+------------------------------------------------------------------|
| AbCd0 | e1d8ba27889d6782008f495473278c4f071995c5549a976e4d4f93863ce93643 | e1d8ba27889d6782008f495473278c4f071995c5549a976e4d4f93863ce93643 |
+-------+------------------------------------------------------------------+------------------------------------------------------------------+
Copy