カテゴリ:

文字列とバイナリ関数 (暗号化ハッシュ)

SHA2_BINARY

Nビット SHA-2メッセージダイジェストを含むバイナリを返します。Nは指定された出力ダイジェストサイズです。

構文

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

引数

必須:

メッセージ

ハッシュされるメッセージの文字列式

オプション:

ダイジェストサイズ

文字列の暗号化に使用される特定の SHA-2関数に対応する出力のサイズ(ビット単位)です。

224 = SHA-224

256 = SHA-256(デフォルト)

384 = SHA-384

512 = SHA-512

SHA-512/224および SHA-512/256はサポートされていません。

SELECT sha2_binary('Snowflake', 384);

--------------------------------------------------------------------------------------------------+
                                   SHA2_BINARY('SNOWFLAKE', 384)                                  |
--------------------------------------------------------------------------------------------------+
 736BD8A53845348830B1EE63A8CD3972F031F13B111F66FFDEC2271A7AE709662E503A0CA305BD50DA8D1CED48CD45D9 |
--------------------------------------------------------------------------------------------------+

出力のデータ型は BINARY で、 BINARY 列に保存できます。

テーブルを作成して入力します。

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)
    ;

クエリと出力を次に示します(表示のために、出力はユーザーが読み取り可能な形式(この場合は16進数の文字列)に暗黙的にキャストされます)。

SELECT v, v_as_sha2_binary
  FROM sha_table
  ORDER BY v;
+-------+------------------------------------------------------------------+
| V     | V_AS_SHA2_BINARY                                                 |
|-------+------------------------------------------------------------------|
| AbCd0 | E1D8BA27889D6782008F495473278C4F071995C5549A976E4D4F93863CE93643 |
+-------+------------------------------------------------------------------+