AesGcmParams
AesGcmParams 字典是 Web Crypto API 的一部分,當使用 AES-GCM 演算法時,它應該作為 algorithm 引數傳遞給 SubtleCrypto.encrypt()、SubtleCrypto.decrypt()、SubtleCrypto.wrapKey() 或 SubtleCrypto.unwrapKey()。
有關如何為此引數提供適當值的詳細資訊,請參閱 AES-GCM 規範:NIST SP800-38D,特別是關於輸入資料的第 5.2.1.1 節。
例項屬性
name-
一個字串。應將其設定為
AES-GCM。 iv-
一個
ArrayBuffer、一個TypedArray或一個DataView,其中包含初始化向量。對於使用給定金鑰進行的每次加密操作,此值必須是唯一的。換句話說:切勿與同一金鑰重複使用 IV。AES-GCM 規範建議 IV 的長度為 96 位,並且通常包含來自隨機數生成器的位。規範的第 8.2 節概述了構建 IV 的方法。請注意,IV 不需要保密,只需要唯一:因此,例如,將其與加密訊息一起明文傳輸是可以的。 additionalData可選-
一個
ArrayBuffer、一個TypedArray或一個DataView。這包含了不會被加密但會與加密資料一起進行身份驗證的附加資料。如果在其中提供了additionalData,則在呼叫decrypt()時必須提供相同的資料:如果提供給decrypt()呼叫的資料與原始資料不匹配,解密將丟擲異常。這為您提供了一種無需加密即可驗證關聯資料的方法。additionalData的位長必須小於2^64 - 1。additionalData屬性是可選的,可以省略,而不會損害加密操作的安全性。 tagLength可選-
一個
Number。這決定了加密操作中生成的身份驗證標籤的大小(以位為單位),以及在相應解密中用於身份驗證的大小。Web Crypto API 規範要求此值必須是以下值之一:32、64、96、104、112、120 或 128。另一方面,AES-GCM 規範建議此值為 96、104、112、120 或 128,儘管在某些應用中 32 或 64 位可能是可接受的。有關更多指導,請參閱 NIST 關於“推薦分組密碼執行模式”的出版物的附錄 C。
tagLength是可選的,如果未指定,則預設為 128。
示例
請參閱 SubtleCrypto.encrypt() 和 SubtleCrypto.decrypt() 的示例。
規範
| 規範 |
|---|
| Web 加密級別 2 # dfn-AesGcmParams |
瀏覽器相容性
支援 SubtleCrypto.encrypt()、SubtleCrypto.decrypt()、SubtleCrypto.wrapKey() 或 SubtleCrypto.unwrapKey() 方法的 "AES-GCM" 演算法的瀏覽器將支援此型別。