AesGcmParams

AesGcmParamsWeb Crypto API 的一个字典,表示应作为 algorithm 参数传递给 SubtleCrypto.encrypt()SubtleCrypto.decrypt()SubtleCrypto.wrapKey()SubtleCrypto.unwrapKey() 的对象,用于使用 AES-GCM 算法。

有关如何为此参数提供适当值的详细信息,请参阅 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。

示例

规范

规范
Web 密码 API
# dfn-AesGcmParams

浏览器兼容性

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

另请参阅