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