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 Level 2> # dfn-AesGcmParams> |
浏览器兼容性
支持在 SubtleCrypto.encrypt()、SubtleCrypto.decrypt()、SubtleCrypto.wrapKey() 或 SubtleCrypto.unwrapKey() 方法中使用“AES-GCM”算法的浏览器将会支持此类型。