AesGcmParams

Web Crypto APIAesGcmParams 字典表示当使用 AES-GCM 算法时,应作为 algorithm 参数传递给 SubtleCrypto.encrypt()SubtleCrypto.decrypt()SubtleCrypto.wrapKey()SubtleCrypto.unwrapKey() 的对象。

有关如何为此参数提供合适值的详细信息,请参阅 AES-GCM 规范:NIST SP800-38D,特别是关于输入数据的 5.2.1.1 节。

实例属性

name

一个字符串,应设置为 AES-GCM

iv

一个具有初始化向量的 ArrayBufferTypedArrayDataView。对于使用给定密钥执行的每次加密操作,此值必须是唯一的。换句话说:切勿使用相同的密钥重复使用 IV。AES-GCM 规范建议 IV 应为 96 位长,并且通常包含来自随机数生成器的位。规范的第 8.2 节概述了构造 IV 的方法。请注意,IV 不需要保密,只需保持唯一性:因此,例如,可以将其与加密消息一起以明文形式传输。

additionalData 可选

一个 ArrayBufferTypedArrayDataView。这包含了一些额外的不会被加密的数据,但会与加密数据一起进行认证。如果在此处提供了 additionalData,则在相应的 decrypt() 调用中也必须提供相同的数据:如果 decrypt() 调用中提供的数据与原始数据不匹配,解密操作将抛出异常。这提供了一种无需加密即可对关联数据进行认证的方法。

additionalData 的位长度必须小于 2^64 - 1

additionalData 属性是可选的,且可以省略,而不会影响加密操作的安全性。

tagLength 可选

一个 Number。这决定了加密操作中生成的认证标签的位数,用于相应解密过程中的认证。

根据 Web Crypto 规范,此值必须是以下之一:32、64、96、104、112、120 或 128。AES-GCM 规范建议该值应为 96、104、112、120 或 128,尽管在某些应用中,32 或 64 位也可能是可接受的:规范的附录 C 对此提供了更多指导。

tagLength 是可选的,如果没有指定,默认是 128。

示例

规范

Specification
Web Cryptography API
# dfn-AesGcmParams

浏览器兼容性

支持在 SubtleCrypto.encrypt()SubtleCrypto.decrypt()SubtleCrypto.wrapKey()SubtleCrypto.unwrapKey() 方法中使用“AES-GCM”算法的浏览器将会支持此类型。

参见