Q01
什么时候需要 SRI hash?
当浏览器要加载第三方 JS 或 CSS,并且你希望加完整性校验时。
生成 SHA256/384/512 完整性哈希
Quick CTA
先粘贴 JS 或 CSS 内容,首屏直接生成 SRI hash;部署和校验场景放在 Deep。
下一步(Workflow)
Deep 展开踩坑、配方、片段、FAQ 与相关工具,适合排查问题或继续深入。
输入 JS 或 CSS 内容即可生成 Subresource Integrity 所需的 sha256/sha384/sha512 完整性哈希,结果可直接用于 script/link 的 integrity 属性。适用于 CDN 资源校验、前端安全加固和发布流程核验。
Q01
当浏览器要加载第三方 JS 或 CSS,并且你希望加完整性校验时。
Q02
因为哪怕只变一个字节,摘要也会完全不同。
失败输入:同 URL 下内容变更,仍沿用旧 integrity。
失败表现:浏览器拦截资源,页面功能无声降级。
修复:内容变更后同步重算 SRI 并原子化发布。
失败输入:CSP 期望 sha384,标签只提供 sha256。
失败表现:在严格策略环境下资源加载失败。
修复:统一 CSP 与 integrity 使用的哈希算法。
失败输入:对本地 beautify 后脚本生成哈希。
失败表现:浏览器因字节不匹配拒绝加载资源。
修复:必须基于最终分发路径的真实字节计算。
失败输入:用本地开发文件算哈希,线上却加载 CDN 压缩文件。
失败表现:浏览器报完整性不匹配,脚本不执行。
修复:必须基于最终下发给用户的文件计算。
失败输入:把十六进制摘要直接填入 integrity。
失败表现:即使内容正确也校验失败。
修复:使用浏览器要求的算法+base64 摘要格式。
SRI 哈希生成 在明确输入约束并按固定流程使用时,效果会更稳定。
建议把这个工具放进可复用排障流程,而不是临时试错。
固定一组可复现输入和期望输出,团队协作会更高效。
可将关键输出写入 PR 或问题单,减少反复沟通。
上线后若行为变化,用同一组样例对比新旧结果最容易定位。
SRI 哈希生成 更适合放在真实输入与发布决策链路中使用,优先关注「支付/认证等关键流程引入外部脚本」这类高风险场景。
目标:在把 JS/CSS 嵌进 HTML 前,快速得到可用的 SRI hash。
结果:你可以更方便地给静态资源补上完整性校验。
目标:防止 CDN 文件静默变更影响线上行为。
结果:供应方文件漂移可在上线前被拦截。
目标:防止 CDN 资源被篡改或变更后直接执行。
结果:异常资源会被浏览器自动拦截。
目标:让脚本升级可追踪、可回滚。
结果:升级过程更可控,事故处置更快。
原因:压缩、重新构建或 CDN 改写后,内容字节已经不同。
修复:一定用生产最终输出的精确文件内容来生成 SRI。
html
integrity="sha384-..."普通资源引用
适合不要求浏览器做完整性校验的场景。
SRI 保护引用
适合第三方资源需要浏览器校验时。
补充:SRI 的前提是线上文件字节和你计算 hash 时完全一致。
固定 hash
适合第三方脚本/样式等高风险依赖。
不固定 hash
仅适合强内控、可追溯的内部资源。
补充:SRI 用发布灵活性换完整性保障,边界越外部越值得做。
严格 SRI
适合登录、支付、归因等高风险第三方脚本。
仅信任 CDN
仅适合短期低风险实验。
补充:SRI 可阻断第三方资源静默漂移进入生产。
建议选:强制 SRI + 版本锁定 + 变更告警。
谨慎用:避免直接引用 latest 且无完整性校验。
建议选:用常规缓存破坏策略,必要时叠加 SRI 做加固。
谨慎用:在边界完全内控且监控完善时避免无谓运维开销。
建议选:哈希最终 CDN 文件,并在预发先验证。
谨慎用:避免用源码仓库或本地转换结果计算 SRI。
建议选:强制 SRI,并纳入发布清单。
谨慎用:避免无完整性保护地加载可变脚本。
建议选:可临时简化,但需明确非生产边界。
谨慎用:避免把原型策略带入正式模板。
处理过程在浏览器本地完成,输入内容不会上传到服务器。
算法应按场景选择:完整性校验优先 SHA-256 及以上,签名校验建议使用 HMAC/JWT 并配合强密钥。
建议先用小样本在SRI 哈希生成中验证结果,再处理完整数据;关键场景请结合线上环境做二次校验。
建议先用小样本在SRI 哈希生成中验证结果,再处理完整数据;关键场景请结合线上环境做二次校验。
是的。所有处理都在浏览器本地完成,输入不会上传到服务器。
建议先使用结构正确的输入,避免混合编码,并先粘贴最小可复现样例。预览正确后再处理完整内容。