Utilo

HTTP 签名计算器

逐步计算和调试 API 请求签名:AWS Signature V4、阿里云 ACS3、腾讯云 TC3-HMAC-SHA256、OAuth 1.0a,并校验 GitHub、Stripe、Slack 的 Webhook 签名。全部用 Web Crypto 在本地完成。

这个HTTP签名计算器的功能

"我们计算的请求签名与您提供的签名不匹配"是API工作中最令人丧的错误之一,。这台计算器可复制 AWS Signature Version 4,Alibaba Cloud ACS3-HMAC-SHA256,Tencent Cloud TC3-HMAC-SHA256 和 OAuth 1.0a HMAC-SHA1 的整个签名过程,并显示每个中间值:规范请求,其哈希,签名字符串,衍生签名密钥以及最终签名和头。它还验证了来自GitHub,Stripe和Slack的webhook签名。所有密码都使用浏览器的网络密码API,

使用方法

  1. 选择提供者选项卡。
  2. 输入方法,URL,头条 (每行一个Name: value) 和正如您的代码发送它们的那样。
  3. 输入访问密钥,秘密密钥,并酌情输入区域和服务。点击使用当前时间或固定时间,以与捕获请求进行比较。
  4. 让我们对每个步骤进行比较,。首先要注意的是你的虫子在哪里
  5. 对于webhooks,请粘贴原始请求体字节为字节,签名头和签名密码,

签名不匹配的常见原因

  • 定制URI编码: AWS编码每个路径段;S3不进行双重编码。
  • **查询排序:**参数必须按编码键排序,空值仍然需要=。
  • **签名标题:**标题名字是小写的,修剪,排序和加入;。忘记host或x-amz-date是很常见的。
  • **有效载荷哈希:**S3需要x-amz-content-sha256头;其他服务只需要哈希机体。
  • **时钟偏差:**大多数提供商拒绝超过515分钟的请求。
  • **Webhooks:**框架通常在您看到JSON之前分析并重新串行。根据原始字节进行验证,而不是重新编码的对象。条纹标志timestamp.body,宽松标志v0:timestamp:body。

常见问题

输入我的密钥安全吗?

页面在本地使用网络加密进行所有计算,并没有发送任何信息。对于生产机密,无论如何都更喜欢临时凭证或测试密钥。

有没有测试过 AWS 实现?

没有。它复制了AWS签名版本4文档中的示例签名,这些签名是网站自动测试的一部分。

它是否支持AWS SigV4A或预先签名的URL?

现在还没有。支持基于标题的SigV4;预先签名的查询字符串签名是路线图上的。

为什么OAuth 1.0a需要我的身体参数?

对于形式编码的实体,参数是签名基础字符串的一部分。没有包含JSON体。

安全。所有处理都通过 JavaScript、Web Worker 和浏览器 API 在本地完成,你输入、粘贴或上传的任何内容都不会发送到我们的服务器。

本页内容由英文自动翻译而来,如发现错误,欢迎告诉我们。