CSP 哈希生成器
粘贴内联脚本或样式的精确内容(不含 <script> 标签,无前后空白差异),工具会对其 UTF-8 字节计算 SHA-2 摘要,进行 base64 编码,并输出 CSP 接受为白名单条目的 'sha256-…' 形式令牌。浏览器在解析时以相同方式哈希,因此任何字节不一致 —— 包括行尾 —— 都将匹配失败,块无法执行。当你确实需要一段极小的内联代码时,用它替代 'unsafe-inline'。
—
算法
目标指令
粘贴要哈希的内容。
浏览器按内联元素的精确字节进行哈希。空白、缩进与行尾都会影响。
使用方法
- 粘贴脚本主体(<script> 与 </script> 之间的全部内容)或样式主体。
- 选择算法(几乎所有场景 sha256 足够;如政策要求可用 384/512)。
- 把结果 'sha256-…' 令牌复制到对应的 -src 指令中。
常见问题
- 空白和换行重要吗?
- 重要 —— 浏览器哈希的是元素的字面字节。末尾换行或不同缩进会令哈希失效。粘贴标签间的精确内容即可。
- 应该总是用 sha512 吗?
- 不必。sha256 是事实上的基线;只有政策或审计要求时才需要 sha384/sha512。更长的摘要在此并不增加真正的安全性 —— 威胁模型假定内联内容是作者本人写的。
- 该用哈希还是 nonce?
- 内容永不改变的脚本适合用哈希:算一次,贴进静态头部即可。按请求动态生成的内容适合用 nonce:它是服务器在每个响应里新生成的随机值,同时写进头部和标签。nonce 绝不能做的事是被复用或可被预测——一个能跨响应存活的 nonce,恰好放行了这条策略本要阻止的注入。
- 上线之后哈希对不上了,是什么变了?
- 几乎肯定是脚本的字节变了。重命名变量的压缩器、重写模板的构建步骤、从制表符改成空格、编辑器补上的末尾换行——即使代码行为完全相同,它们都会算出不同的摘要。请把哈希作为构建过程的一步,从真正发布出去的那份文本生成,而不是从你编辑的源码生成。
相关工具
Content-Security-Policy 构建器
按指令源列表构建 CSP 头,三种入门预设与对危险通配符的实时警告。
网络 0 0
哈希生成器 (SHA)
根据文本生成 SHA-1、SHA-256、SHA-384 和 SHA-512 哈希。
开发 0 0
文件哈希 (校验和)
计算任意文件的 SHA-1、SHA-256 和 SHA-512 校验和。
文件 0 0
文件哈希校验
拖入文件并粘贴预期的 SHA-1/256/384/512 — 检查实际哈希是否匹配。安装下载的二进制前很有用。
文件 0 0
SPF 记录构建器
由机制、IP 和 include 构建 Sender Policy Framework TXT 记录 —— 带实时 DNS 查询计数和警告。
网络 0 0
Permissions-Policy 头构建器
构建 `Permissions-Policy` 响应头 —— 按源允许列表切换摄像头、麦克风、地理位置、支付、全屏和 20+ 其他浏览器功能。
网络 0 0