语言
English English Vietnamese (Tiếng Việt) Vietnamese (Tiếng Việt) Chinese (简体中文) Chinese (简体中文) Portuguese (Brazil) (Português do Brasil) Portuguese (Brazil) (Português do Brasil) Spanish (Español) Spanish (Español) Indonesian (Bahasa Indonesia) Indonesian (Bahasa Indonesia)
SRI 哈希生成器

SRI 哈希生成器

生成子资源完整性(SRI)哈希值,验证从 CDN 加载的外部脚本和样式表未被篡改。

什么是子资源完整性(SRI)?

子资源完整性(SRI)是一项安全功能,允许浏览器验证从外部源(如 CDN)加载的文件是否未被修改或破坏。当您向 <script><link> 标签添加完整性属性时,浏览器会将下载文件的哈希值与预期哈希值进行比较。如果不匹配,浏览器将阻止该资源。

为什么使用 SRI?

从第三方 CDN 加载 JavaScript 或 CSS 很方便,但会带来安全风险。如果 CDN 被破坏,攻击者可能会向您的网站注入恶意代码。SRI 通过确保只执行文件的确切验证版本来消除这种风险。

防止供应链攻击

阻止被篡改的脚本在您的网站上运行,保护您免受受损 CDN 资源的威胁。

保护用户数据

阻止注入的代码窃取凭证、会话令牌或敏感用户信息。

符合安全标准

SRI 被 OWASP 和 W3C 推荐为网络安全最佳实践。

它如何工作?

SRI 使用密码学哈希函数(SHA-256、SHA-384 或 SHA-512)为文件内容创建指纹。此哈希值作为 integrity 属性添加到 HTML 标签中,同时添加 crossorigin="anonymous" 以启用基于 CORS 的验证。

工作原理:当浏览器下载资源时,它会计算接收文件的哈希值,并将其与您提供的完整性哈希值进行比较。如果匹配,资源将被执行。如果不匹配,浏览器将完全阻止它。

如何使用 SRI 哈希生成器

1

粘贴文件内容

复制您要保护的 JavaScript 或 CSS 文件的完整内容,并将其粘贴到内容文本框中。当您输入或粘贴时,哈希值会自动生成。

2

选择算法

从工具栏中选择哈希算法。SHA-384 默认选中,是 SRI 的推荐选择。您也可以根据需要使用 SHA-256 或 SHA-512。

3

设置标签类型

选择资源是 <script>(JavaScript)还是 <link>(CSS 样式表)。如果您输入带有 .js.css 扩展名的 URL,标签类型会自动检测。

4

添加资源 URL(可选)

资源 URL 字段中输入资源的 CDN URL。此 URL 将用于生成的 HTML 标签的 srchref 属性。如果留空,将使用占位符 URL。

5

复制输出

使用复制按钮复制完整性哈希值完整 HTML 标签。将标签直接粘贴到您的 HTML 中以启用 SRI 保护。

专业提示:始终在开发环境中先测试您的 SRI 保护资源,以确保哈希值匹配且资源正确加载。

主要功能

多种哈希算法

使用 SHA-256、SHA-384 或 SHA-512 生成 SRI 哈希值。SHA-384 是默认推荐算法,符合 W3C SRI 规范。

  • SHA-256 用于基本安全
  • SHA-384(推荐)
  • SHA-512 用于最高强度
  • 即时算法切换

自动检测标签类型

当您输入资源 URL 时,工具会自动检测它是 JavaScript 文件还是 CSS 样式表,并选择相应的标签类型。

  • 自动检测 .js 文件
  • 自动检测 .css 文件
  • 支持手动覆盖
  • 智能 URL 解析

可直接使用的 HTML 输出

获得包含完整性和 crossorigin 属性的完整 HTML 标签。只需复制并粘贴到您的 HTML 文档中。

  • 完整的 <script> 标签
  • 完整的 <link> 标签
  • 包含 CORS 属性
  • 无需手动编辑

一键复制

只需单击一次即可复制完整性哈希值或完整 HTML 标签。复制到剪贴板时会显示视觉确认。

  • 仅复制哈希值
  • 复制完整 HTML 标签
  • 视觉确认
  • 即时剪贴板访问

客户端处理

所有哈希计算完全在您的浏览器中使用 Web Crypto API 进行。您的文件内容永远不会上传到任何服务器。

  • 100% 基于浏览器
  • 无服务器上传
  • 完全隐私
  • 离线工作

实时生成

当您输入或粘贴内容时,哈希值会立即计算。无需点击生成按钮或等待处理。

  • 即时哈希计算
  • 实时预览更新
  • 无延迟或等待
  • 高效处理

常见问题

我应该为 SRI 使用哪种算法?

SHA-384 由 W3C 推荐,是 SRI 最广泛使用的算法。它在安全性和性能之间提供了很好的平衡。所有现代浏览器都支持 SHA-256 和 SHA-512。

最佳实践:除非您对 SHA-256(较小的哈希大小)或 SHA-512(最高安全性)有特定要求,否则使用 SHA-384。

我需要 crossorigin 属性吗?

是的。crossorigin="anonymous" 属性是 SRI 与从不同源(如 CDN)加载的资源配合使用所必需的。没有它,浏览器无法验证跨源资源的完整性。

anonymous 值意味着请求中不发送凭证(cookie、HTTP 身份验证),这是公共 CDN 资源的标准配置。

如果哈希值不匹配会发生什么?

如果下载文件的哈希值与完整性属性不匹配,浏览器将拒绝执行脚本拒绝应用样式表。这可以保护您的网站免受加载受损文件的影响。

重要提示:浏览器还会在控制台中记录错误,这有助于您识别资源何时被修改或何时需要在合法文件更新后更新完整性哈希值。

CDN 需要支持 CORS 吗?

是的。托管资源的服务器必须包含 Access-Control-Allow-Origin 标头才能使 SRI 验证工作。大多数流行的 CDN(jsDelivr、cdnjs、unpkg)已经支持 CORS。

如果您使用不支持 CORS 的 CDN,SRI 验证将失败,资源将无法加载。在这种情况下,您需要切换到支持 CORS 的 CDN 或在您自己的域上托管资源。

我的内容会被发送到服务器吗?

不会。所有哈希计算都在您的浏览器中使用 Web Crypto API 进行。您的文件内容永远不会离开您的设备。

隐私保证:此工具加载后完全离线工作。您甚至可以断开互联网连接并继续为您的文件生成 SRI 哈希值。

我可以在一个标签中使用多个算法吗?

可以,SRI 规范允许多个哈希值用空格分隔(例如 sha256-abc sha384-xyz)。浏览器将使用它支持的最强算法。此工具一次生成一个哈希值 — 如果需要,您可以手动组合它们。

使用多个哈希值可以提供与较旧浏览器的向后兼容性,同时确保较新的浏览器使用最强的可用算法。

Subresource Integrity (SRI) 允许浏览器验证从 CDN 或第三方服务器加载的资源未被篡改。请将文件内容粘贴到下方生成 integrity hash,然后添加到您的 HTML 标签中。

资源 URL 可选
内容
输出

粘贴内容或输入 URL 以生成 SRI hash

Integrity Hash
HTML
粘贴来自 CDN 资源的完整文件内容以生成匹配的哈希值
SHA-384 是 SRI 的推荐算法,默认已选中
输入资源 URL 以获得可直接使用的 HTML 标签,包含完整性属性
标签类型根据 URL 扩展名自动检测 — .js 用于脚本,.css 用于链接
所有哈希计算都在您的浏览器中进行 — 您的内容永远不会离开您的设备
想了解更多? 阅读文档 →
1/6
找不到?用AI自定义工具
开始输入以搜索...
搜索中...
未找到结果
请尝试使用不同的关键词搜索