クラス AesGcmBytesEncryptor
java.lang.ObjectSE
org.springframework.security.crypto.encrypt.AesGcmBytesEncryptor
- 実装済みのインターフェース一覧:
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
- 関連事項:
ネストされたクラスの概要
ネストされたクラス方法の概要
修飾子と型メソッド説明byte[]decrypt(byte[] encryptedBytes) バイト配列を復号化します。byte[]encrypt(byte[] bytes) バイト配列を暗号化します。static AesGcmBytesEncryptor.BuilderwithPassword(StringSE password, CharSequenceSE salt) 指定されたパスワードと 16 進数エンコードされたソルトから PBKDF2WithHmacSHA1 を使用して鍵を生成する暗号化器を作成します。static AesGcmBytesEncryptor.BuilderwithSecretKey(SecretKeySE secretKey) 提供されたSecretKeySE を使用して暗号化器を作成します。
方法の詳細
withPassword
指定されたパスワードと 16 進数エンコードされたソルトから PBKDF2WithHmacSHA1 を使用して鍵を生成する暗号化器を作成します。- パラメーター:
password- パスワード値salt- 16 進数でエンコードされたソルト値
withSecretKey
提供されたSecretKeySE を使用して暗号化器を作成します。- パラメーター:
secretKey- 秘密(対称)鍵
encrypt
public byte[] encrypt(byte[] bytes) インターフェースからコピーされた説明:BytesEncryptorバイト配列を暗号化します。- 次で指定:
- インターフェース
BytesEncryptor内のencrypt
decrypt
public byte[] decrypt(byte[] encryptedBytes) インターフェースからコピーされた説明:BytesEncryptorバイト配列を復号化します。- 次で指定:
- インターフェース
BytesEncryptor内のdecrypt