AesGcmParams
Web Crypto API 的 AesGcmParams
字典表示当使用 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 规范,此值必须是以下之一:32、64、96、104、112、120 或 128。AES-GCM 规范建议该值应为 96、104、112、120 或 128,尽管在某些应用中,32 或 64 位也可能是可接受的:规范的附录 C 对此提供了更多指导。
tagLength
是可选的,如果没有指定,默认是 128。
示例
参见 SubtleCrypto.encrypt()
和 SubtleCrypto.decrypt()
的示例。
规范
Specification |
---|
Web Cryptography API # dfn-AesGcmParams |
浏览器兼容性
支持在 SubtleCrypto.encrypt()
、SubtleCrypto.decrypt()
、SubtleCrypto.wrapKey()
或 SubtleCrypto.unwrapKey()
方法中使用“AES-GCM”算法的浏览器将会支持此类型。