API 请求测试器
Web 与网络 按需联网
使用提供商预设和测试用例生成、验证字节精确的 Webhook HMAC 签名。
Payload、Secret 和签名只留在内存;此静态工具不接收公网 Webhook。
{
"action": "opened",
"repository": {
"id": 1296269,
"full_name": "nobuf/example"
}
}UTF-8 字节
99
JSON
有效 JSON
事件类型
—
ID
—
// Read raw request bytes before JSON parsing. Never log the secret.
const crypto = require('node:crypto')
const signed = rawBody
const expected = crypto.createHmac('sha256', secret).update(signed, 'utf8').digest('hex')
// Compare decoded bytes with crypto.timingSafeEqual after validating lengths.选择提供商预设或通用 HMAC 算法,签名密钥仅保留在浏览器内存。
粘贴或打开未经改变的 UTF-8 Payload、签名 Header 和时间戳,并让格式化 JSON 保持独立。
检查签名与重放结果、运行确定性负向用例、导出无密钥报告并复制服务端验证代码。
不能。静态浏览器工具没有公网服务器端点;它会在本地验证已捕获证据,并帮助复现接收端代码。
签名覆盖精确字节。空白、换行、Key 顺序或编码变化都会产生不同 HMAC,即使解析后的 JSON 值看起来相同。
不会。Web Crypto 在本地运行,工作区不会把 Secret、Payload 或签名写入持久浏览器存储。
不能单独阻止。带时间戳的提供商还需要服务端容差检查,并在应用中持久去重 Event 或 Delivery ID。
继续使用其他专注的浏览器端工具。