- カテゴリ:
文字列とバイナリ関数 (暗号化ハッシュ)
SHA2 , SHA2_HEX¶
Nビットの SHA-2メッセージダイジェストを含む16進数でエンコードされた文字列列を返します。Nは指定された出力ダイジェストサイズです。
これらの関数は同義語です。
構文¶
SHA2( <msg> [, <digest_size>] )
SHA2_HEX( <msg> [, <digest_size>] )
引数¶
必須:
msg
ハッシュされるメッセージの文字列式
オプション:
digest_size
文字列の暗号化に使用される特定の SHA-2関数に対応する出力のサイズ(ビット単位)です。
224 = SHA-224
256 = SHA-256(デフォルト)
384 = SHA-384
512 = SHA-512
SHA-512/224および SHA-512/256はサポートされていません。
戻り値¶
戻り値のデータ型はVARCHARです。
使用上の注意¶
この関数は、復号化する必要のあるメッセージを暗号化するためには使用しないでください。この関数には、対応する復号化関数がありません。(出力の長さは、入力の長さに依存しません。出力には、入力からのすべての情報を保持するための十分なビットがあるとは限らないため、有効な可能性があるすべての入力を復号化する関数を作成することはできません。)
この関数は、データ破損を検出するためのチェックサムの計算など、他の用途を目的としています。
データを暗号化および復号化する必要がある場合は、次の関数を使用します。
例¶
SELECT sha2('Snowflake', 224);
----------------------------------------------------------+
SHA2('SNOWFLAKE', 224) |
----------------------------------------------------------+
6267d3d7a59929e6864dd4b737d98e3ef8569d9f88a7466647838532 |
----------------------------------------------------------+
出力のデータ型は文字列(VARCHAR
)で、 VARCHAR
列に保存できます。
テーブルを作成して入力します。
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) ;クエリと出力は次のとおりです。
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 | +-------+------------------------------------------------------------------+------------------------------------------------------------------+