AesGcmParams - 表示使用 AES-GCM 算法的参数
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
一个 DOMString
。它应该设置为 AES-GCM
。
iv
一个 BufferSource
,表示初始化向量。对于使用给定密钥执行的每个加密操作,此名称必须唯一。换句话说,不要重复使用具有相同密钥的 IV。AES-GCM 规范建议 IV 的长度应为 96 位,并且通常包含来自随机数发生器的位。规范的 8.2 节简述了构建 IV 的方法。请注意,IV 不必是秘密的,而只需是唯一的即可:例如,可以将其与加密消息一起以明文方式传输。
additionalData
可选
一个 BufferSource
。它包含不会加密但会与加密数据一起进行身份验证的其他数据。如果此处给出 additionalData
,则必须在调用 decrypt()
)时提供相同的数据:如果将数据提供给 decrypt()
调用与原始数据不匹配,解密将引发异常。这为您提供了一种无需加密即可对关联数据进行身份验证的方法。
additionalData
的位长必须 ≤ 264-1
。
additionalData
属性是可选的,可以在不影响加密操作安全性的情况下将其省略。
tagLength
可选
一个 Number
。这确定了在加密操作中生成并用于相应解密中的身份验证的身份验证标签的位大小。
根据 Web 加密规范,该值必须为以下值之一:32、64、96、104、112、120 或 128。AES-GCM 规范建议将其设置为 96、104、112、120 或 128,尽管 32 位或 64 位在某些应用中是可以接受的:该规范的附录 C 在此处提供了额外的指导。
tagLength
是可选的,如果未指定,则默认为 128。
实例
请参阅 SubtleCrypto.encrypt()
和 SubtleCrypto.decrypt()
的实例。
规范
规范 | 状态 | 备注 |
---|---|---|
Web Cryptography API SubtleCrypto.AesGcmParams 的定义 |
推荐 | - |
浏览器兼容性
如果浏览器的 SubtleCrypto.encrypt()
,SubtleCrypto.decrypt()
,SubtleCrypto.wrapKey()
或 SubtleCrypto.unwrapKey()
方法支持 "AES-GCM" 算法,则支持该类型。