Utilo

Calculadora de assinaturas HTTP

Calcule e depure assinaturas de requisições de API passo a passo: AWS Signature V4, Alibaba Cloud ACS3, Tencent Cloud TC3-HMAC-SHA256 e OAuth 1.0a, e verifique assinaturas de webhooks do GitHub, Stripe e Slack — localmente com Web Crypto.

O que faz este calculador de assinatura HTTP

"A assinatura de solicitação calculada não corresponde à assinatura que você forneceu" é um dos erros mais frustrantes no trabalho da API, porque o servidor nunca diz a você qual passo deu errado. Esta calculadora reproduz todo o processo de assinatura para AWS Signature Version 4, Alibaba Cloud ACS3-HMAC-SHA256, Tencent Cloud TC3-HMAC-SHA256 e OAuth 1.0a HMAC-SHA1, e mostra todos os valores intermediários: a solicitação canônica, seu hash, a cadeia para assinar, a chave de assinatura derivada e a assinatura final e cabeçalhos. Também verifica assinaturas de webhook recebidas do GitHub, Stripe e Slack. Toda a criptografia usa a API Web Crypto do navegador, para que as chaves secretas fiquem no seu dispositivo.

Como usar

  1. Escolha a conta do fornecedor.
  2. Digite o método, URL, cabeçalhos (um Name: value por linha) e corpo exatamente como seu código os envia.
  3. Insira a chave de acesso, a chave secreta e, se aplicável, a região e o serviço. Clique em Use current time ou aponte um selo de tempo fixo para comparar com uma solicitação capturada.
  4. Compare cada passo com o que o seu SDK ou código registra. O primeiro passo que difere é onde está o insecto.
  5. Para webhooks, colar o corpo do pedido bruto byte-by-byte, o cabeçalho da assinatura e o seu segredo de assinatura, e a ferramenta diz-lhe se ele corresponde.

Causas comuns de descoordenações de assinatura

  • Codificação URI canônica: AWS codifica cada segmento de caminho; S3 não codifica duplamente.
  • ** Ordenação da consulta:** Os parâmetros devem ser ordenados por chave codificada, e os valores vazios ainda precisam de =.
  • ** Cabeçalhos assinados:** Os nomes dos cabeçalhos são minúsculos, cortados, ordenados e unidos com ;. Esquecer host ou x-amz-date é comum.
  • Hash de carga útil: O S3 requer o cabeçalho x-amz-content-sha256; outros serviços apenas hasham o corpo.
  • ** Desvio do relógio:** a maioria dos prestadores rejeita pedidos com mais de 515 minutos de atraso.
  • ** Webhooks:** frameworks muitas vezes analisam e re-serializar JSON antes de vê-lo. Verifique contra os bytes brutos, não um objeto recodificado. As linhas são timestamp.body, as linhas são v0:timestamp:body.

Perguntas frequentes

É seguro inserir a minha chave secreta?

A página executa todos os cálculos localmente com Web Crypto e não envia nada. Para segredos de produção, prefere credenciais temporárias ou uma chave de teste.

A implementação da AWS foi testada?
  • Sim, sim, sim. Reproduz as assinaturas de exemplo da documentação AWS Signature Version 4, que fazem parte dos testes automatizados do site.
Suporta o AWS SigV4A ou URLs pré-assinados?
  • Ainda não. SigV4 baseado em cabeçalho é suportado; assinatura pré-assinada de string de consulta está no roteiro.
Porque é que o OAuth 1.0a precisa dos parâmetros do meu corpo?

Para os corpos codificados por formulário, os parâmetros fazem parte da cadeia de base da assinatura. Os corpos JSON não estão incluídos.

Sim. Todo o processamento acontece diretamente no seu navegador usando JavaScript, Web Workers e APIs da Web. Nada do que você digita, cola ou envia vai para os nossos servidores.

Esta página foi traduzida automaticamente do inglês. Se encontrar um erro, avise-nos.