クラス AesGcmBytesEncryptor

java.lang.ObjectSE
org.springframework.security.crypto.encrypt.AesGcmBytesEncryptor
実装済みのインターフェース一覧:
BytesEncryptor

public final class AesGcmBytesEncryptor extends ObjectSE implements BytesEncryptor
BytesEncryptor は、ランダムな 16 バイトの初期化ベクトルと 128 ビットの認証タグを備えた 256 ビット AES/GCM/NoPadding を使用します。IV は暗号化時に暗号文の先頭に追加され、復号時に削除されます。GCM は認証付き暗号化(AEAD)を提供します。これにより、機密性と完全性の両方が保護され、暗号文が改ざんされている場合は復号時にエラーが発生します。

このクラスでは、NIST SP 800-38D で GCM に推奨されている 12 バイト(96 ビット)の IV ではなく、16 バイト(128 ビット)の IV を使用します。どちらの長さも暗号学的に有効ですが、16 バイトを選択することで、Spring Security 暗号モジュールの他の部分との整合性が保たれます。詳細については、OWASP 暗号化ストレージ早見表を参照してください。

withPassword(String, CharSequence) を介して鍵導出を行う場合、鍵は OWASP パスワードストレージ早見表に従って DEFAULT_PBKDF2_ITERATIONS 回の反復処理を伴う PBKDF2WithHmacSHA256 を使用して導出されます。導出は意図的にコストがかかるため、暗号化インスタンスは操作ごとに構築するのではなく、一度作成して再利用する必要があります。

導入:
5.7.26
関連事項:
  • 方法の詳細

    • withPassword

      public static AesGcmBytesEncryptor.Builder withPassword(StringSE password, CharSequenceSE salt)
      指定されたパスワードと 16 進数エンコードされたソルトから PBKDF2WithHmacSHA1 を使用して鍵を生成する暗号化器を作成します。
      パラメーター:
      password - パスワード値
      salt - 16 進数でエンコードされたソルト値
    • withSecretKey

      public static AesGcmBytesEncryptor.Builder withSecretKey(SecretKeySE secretKey)
      提供された SecretKeySE を使用して暗号化器を作成します。
      パラメーター:
      secretKey - 秘密(対称)鍵
    • encrypt

      public byte[] encrypt(byte[] bytes)
      インターフェースからコピーされた説明: BytesEncryptor
      バイト配列を暗号化します。
      次で指定:
      インターフェース BytesEncryptor 内の encrypt 
    • decrypt

      public byte[] decrypt(byte[] encryptedBytes)
      インターフェースからコピーされた説明: BytesEncryptor
      バイト配列を復号化します。
      次で指定:
      インターフェース BytesEncryptor 内の decrypt