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" 算法的浏览器将支持此类型。

另见