Ed25519 é o recomendado - moderno, rápido e compacto. ECDSA P-256 funciona em navegadores mais antigos.
Executa 100% no cliente - chaves, mensagens e assinaturas nunca saem do seu navegador.
O que faz
A ferramenta de Assinatura Digital prova quem escreveu uma mensagem sem revelar nenhum segredo. Ela gera um par de chaves assimétricas de verdade - Ed25519 ou ECDSA P-256 - no seu navegador, assina qualquer texto com a chave privada e verifica assinaturas com a chave pública correspondente. Uma assinatura válida é prova matemática de que o titular da chave privada assinou exatamente esta mensagem: mude um caractere da mensagem, ou verifique com qualquer outra chave, e a checagem falha. Essa propriedade se chama não-repúdio - ao contrário de uma senha compartilhada, o signatário não pode depois negar que assinou, porque só a chave privada dele poderia ter produzido a assinatura.
Tudo roda pela Web Crypto API do navegador. As chaves são geradas localmente, exportadas como DER codificado em hex no formato padrão (SPKI pública / PKCS8 privada) e nunca tocam um servidor. Ambos os algoritmos produzem assinaturas compactas de 64 bytes sobre o digest SHA-256 (ECDSA) ou a mensagem bruta (Ed25519).
Como usar
- Escolha um algoritmo - Ed25519 (recomendado: moderna, rápida, assinaturas determinísticas) ou ECDSA P-256 (melhor suporte a navegadores antigos).
- Em Generate, pressione Generate key pair. Copie a chave pública (compartilhe livremente) e a chave privada (mantenha em segredo).
- Em Sign, cole a chave privada, digite a mensagem, pressione Sign message. Copie a assinatura em hex.
- Em Verify, cole a chave pública, a mensagem e a assinatura, então pressione Verify signature. Um selo verde significa que a assinatura é autêntica; um selo vermelho significa que a mensagem, a assinatura ou a chave não correspondem.
Exemplos
Ciclo completo de assinar e verificar (Ed25519):
message: "Invoice #42, total $1,200 - GΛB"
signature: 9a3f…(128 hex chars = 64 bytes)
verify with the signer's public key → ✅ Valid signature
Mensagem adulterada:
message: "Invoice #42, total $9,200 - GΛB" ← one digit changed
same signature + same public key → ❌ Invalid signature
Chave errada:
verify the original signature with ANY other public key → ❌ Invalid signature
Bom saber
- Contato zero com servidor: chaves, mensagens e assinaturas existem apenas na sua aba do navegador. Nada é enviado, registrado ou armazenado. Você pode assinar offline.
- Ed25519 vs ECDSA P-256: Ed25519 é o padrão moderno - verificação rápida, assinaturas determinísticas (a mesma mensagem + chave sempre produz os mesmos bytes), assinaturas de 64 bytes e resistência a armadilhas de side-channel. ECDSA P-256 (sobre SHA-256) é a curva NIST com o suporte mais amplo em navegadores antigos e smartcards. Ambas são consideradas seguras; Ed25519 é a escolha ergonômica melhor quando disponível.
- A chave privada é a identidade. Não existe revogação nem recuperação: quem obtiver sua chave privada pode assinar como você. Gere chaves para uso real num ambiente confiável e guarde-as criptografadas.
- Nota de interoperabilidade: as assinaturas ECDSA aqui usam o layout bruto IEEE P1363
r||sque a Web Crypto usa - nãoASNASNA number identifying one routing domain on the internet (one AS = one network under a single policy), used by BGP to exchange routes.Learn more
.1 DER. Usuários de OpenSSL precisam deopenssl pkeyutl -rawin/ conversão para comparar com assinaturas DER. Assinaturas Ed25519 seguem o formato padrão de 64 bytes da RFC 8032 em todos os lugares. - Assinaturas provam autoria, não sigilo. A mensagem permanece em claro - para esconder o conteúdo, combine com o File Encryptor. Para autenticação de mensagens com segredo compartilhado (simétrico) em vez de prova de chave pública, veja o
HMACHMACA construction that combines a hash function with a secret key to prove a message is intact and came from someone holding the key.
Generator. - Ferramentas relacionadas:
HMACHMACA construction that combines a hash function with a secret key to prove a message is intact and came from someone holding the key.
Generator, File Encryptor,HashHashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
Generator.