関数リファレンス > 関数 > AES_GCM_ENCRYPT
  

AES_GCM_ENCRYPT

バイナリ暗号文を返します。データ統合は、ガロア/カウンタモード(GCM)の動作でAdvanced Encryption Standard(AES)アルゴリズムを使用します。AESアルゴリズムは、128、192、または256ビットキーを使用するFIPS承認済みの暗号化アルゴリズムです。
この関数を使用して、機密データが必要以上に露出されることを回避します。例えばデータベースに社会保険番号を格納する場合、AES_GCM_ENCRYPT関数を使用して社会保険番号を暗号化し、機密性を確保します。
AES-GCMは、128ビットの認証タグを作成し、それを暗号化された暗号文に追加します。復号化は、認証タグを検証して削除します。認証タグは、データの暗号化チェックサムであり、偶発的なエラーとデータの意図的な変更の両方を明らかにします。
注: [検証]ボタンを使用してこの関数を検証することはできません。構文と引数の規則を確認して、引数が有効であることを確認してください。

構文

AES_GCM_ENCRYPT ( value, init_vector, key [, keysize] )
引数
必須/
オプション
説明
value
必須
Stringデータ型。暗号文に暗号化されるプレーンテキストの値。
init_vector
必須
Stringデータ型。プレーンテキストを暗号化するには、初期化ベクトル(IV)を使用します。IVは96ビットで、ランダムに生成されたものである必要があります。IVは、暗号化プロセスの開始にランダム性を付加するために、暗号化中にキーとともに使用されるビットのブロックです。
注: キーが同じで暗号化文字列が異なるIVを再利用しないでください。
key
必須
サイズが128、192、または256ビットの文字列データ型。keyのサイズがkeysizeより小さい場合、残りはnullとしてパディングされます。
keysize
key引数のサイズ(ビット単位)により、keysize引数がオプションであるか必須であるかが決まります。
  • - key引数のサイズが128ビット以下の場合、keysizeはオプションです。
  • - key引数のサイズが128ビットより大きく、かつ192ビット以下の場合、keysizeは192ビットであり、必須です。
  • - key引数のサイズが192ビットより大きく、かつ256ビット以下の場合、keysizeは256ビットであり、必須です。
整数データ型。指定されたkeyのサイズ。
可能な値: 128、192、または256ビット。デフォルト値は128ビットです。

戻り値

暗号化されたバイナリ暗号文。
NULL値を入力した場合は、NULLです。

以下の例では、社会保険番号の暗号化された値が返されます。init_vectorkey値は、後で社会保障番号を復号化するために使用されます。
この例では、init_vectorは12文字(96ビット)で、keyは16文字(128ビット)です。keyがデフォルト値の128ビットであるため、keysizeはオプションです。
AES_GCM_ENCRYPT('832-17-1672', '012345678901', '1234567890123456', 128)
この例では、init_vectorは12文字(96ビット)で、keyは17文字(136ビット)であるため、keysizeは必須です。keyのサイズが192ビットより小さい場合、keyはnullでパディングされます。
AES_GCM_ENCRYPT('832-17-1672', '123456789012', '12345678901234567', 192)

ヒント

ターゲットでバイナリデータがサポートされていない場合、ENC_BASE64関数でAES_GCM_ENCRYPTを使用して、データベースと互換性のある形式でデータを保存します。