

新闻资讯
行业动态HTML5通过Web Crypto API支持AES-GCM加密,需严格保证IV唯一、密钥隔离及标签强制验证,才能实现机密性、完整性与真实性统一。
HTML5 本身不直接支持 GCM(Galois/Counter Mode)加密模式,它依赖浏览器提供的 Web Crypto API 来调用底层安全算法。GCM 是一种认证加密(AEAD)模式,能同时保证数据的机密性、完整性与真实性,比单纯使用 AES-CBC 更安全可靠。要在 HTML5 应用中正确启用 GCM 加密,关键在于规范使用 window.crypto.subtle 接口,并严格遵循密钥管理、IV(nonce)生成和标签验证等核心要求。
GCM 模式在 Web Crypto API 中通过 encrypt() 和 decrypt() 方法配合 "AES-GCM" 算法名使用。注意必须提供符合要求的参数对象:
name: "AES-GCM"、iv(12 字节推荐,也可 8–120 字节但须唯一)、additionalData(可选,用于认证关联数据)、tagLength(默认 128,常用 128 或 96)importKey() 安全导入,禁止硬编码或派生弱密钥crypto.getRandomValues(new Uint8Array(12)) 每次生成GCM 加密输出 = 密文 + 认证标签(通常末尾 16 字节)。解密时 Web Crypto 会自动校验标签,但开发者需主动捕获错误:
decrypt() 会抛出 DataError 或 OperationError,不能忽略异常additionalData 参数,它参与认证但不加密很多“看似加密”的实现实际丧失 GCM 的安全优势:
立即学习“前端免费学习笔记(深入)”;
decrypt(),不可做任何转换或填充目前所有主流现代浏览器(Chrome 43+、Firefox 34+、Edge 17+、Safari 11.1+)均完整支持 AES-GCM。若需支持 Safari 10.x 或更旧版本:
isSupported 检测:if ("AES-GCM" in window.crypto.subtle?.getAlgorithms?.())
真正发挥 GCM 价值,不在于是否调用了 API,而在于是否守住 IV 唯一性、密钥隔离性和标签强制验证这三条底线。只要这三点做到位,HTML5 应用就能在客户端获得接近服务端级别的加密保障。