# Gerador de assinatura digital

Assina uma mensagem com uma chave privada ou verifica uma assinatura com uma chave pública — suporta RSA-PSS (SHA-256), ECDSA (P-256) e Ed25519. Criptografia puramente local (Node crypto.createVerify/createSign), sem rede. Cole uma chave PEM para assinar ou verificar uma assinatura base64. Esta ferramenta assina/verifica; não gera pares de chaves.

> Página canônica: https://elysiatools.com/pt/tools/digital-signature-generator

- **Categoria:** Security

- **Palavras-chave:** assinatura digital, assinar, verificar, RSA-PSS, ECDSA, Ed25519, assimétrico

## Visão geral

Esta ferramenta realiza **assinaturas digitais assimétricas** — a criptografia por trás de assinatura de código, proveniência de software (Sigstore/SLSA), assinatura de documentos e APIs autenticadas.

**Dois modos:**
- **Assinar**: cole uma mensagem e uma **chave privada** PEM, obtenha uma assinatura base64.
- **Verificar**: cole uma mensagem, uma **chave pública** PEM e uma assinatura base64, obtenha VÁLIDO/INVÁLIDO.

**Três algoritmos** (devem corresponder ao tipo de chave colada):
- **RSA-PSS (SHA-256)** — o esquema moderno de assinatura RSA (probabilístico, com salt). Preferido ao antigo PKCS#1 v1.5. Requer chave RSA.
- **ECDSA (P-256, SHA-256)** — assinaturas de curva elíptica; chaves mais curtas que RSA para segurança equivalente. Usa a codificação IEEE P1363 (`r‖s`) para saída determinística de largura fixa. Requer chave EC P-256 (prime256v1).
- **Ed25519** — EdDSA rápido e determinístico sobre Curve25519; um comprimento de assinatura (64 bytes), sem seleção de parâmetros. Requer chave Ed25519.

**Como usar.** Primeiro gere um par de chaves com o **RSA Key Generator** ou **SSH Key Generator** (esta ferramenta não gera chaves). Depois:
1. Assine uma mensagem com a chave privada → copie a assinatura base64.
2. Entregue ao destinatário a mensagem + assinatura + sua **chave pública**.
3. Ele cola os três aqui, escolhe o algoritmo correspondente e verifica.

**Correspondência chave/algoritmo.** O algoritmo deve corresponder ao tipo de chave: chave RSA apenas com RSA-PSS, EC P-256 com ECDSA, Ed25519 com Ed25519. Incompatibilidade gera erro de verificação.

**Segurança.** Toda a assinatura acontece localmente no seu navegador via módulo `crypto` do Node — a chave privada nunca sai do seu dispositivo. Assinaturas são não-repudiáveis: apenas o titular da chave privada poderia ter produzido uma assinatura que a chave pública verifica.

## Entradas

- **Modo** (select)
- **Algoritmo** (select)
- **Mensagem** (textarea): The message to sign or verify.
- **Chave privada (PEM)** (textarea): -----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY----- (Used in Sign mode.)
- **Chave pública (PEM)** (textarea): -----BEGIN PUBLIC KEY----- ... -----END PUBLIC KEY----- (Used in Verify mode.)
- **Assinatura (base64)** (textarea): Paste the base64 signature to verify. (Used in Verify mode.)

## Quando usar

- Quando você precisa assinar digitalmente um manifesto, documento ou payload de API usando uma chave privada PEM existente.
- Quando você precisa validar a autenticidade e a integridade de uma mensagem recebida comparando-a com uma assinatura base64 e uma chave pública.
- Quando você deseja realizar operações criptográficas assimétricas rápidas sem expor suas chaves privadas à rede.

## Como funciona

- Selecione o modo de operação desejado: 'Assinar' para gerar uma nova assinatura ou 'Verificar' para validar uma assinatura existente.
- Escolha o algoritmo criptográfico correspondente ao tipo de chave que você possui (RSA-PSS, ECDSA ou Ed25519).
- Insira a mensagem de texto e cole a chave privada ou pública no formato PEM apropriado.
- Clique para processar localmente e obter a assinatura em formato base64 ou o veredito de validação (VÁLIDO/INVÁLIDO).

## Casos de uso

- Autenticação de payloads de API assinando requisições com chaves privadas ECDSA ou RSA-PSS.
- Verificação de integridade de releases de software e manifestos de proveniência usando chaves públicas.
- Auditoria rápida de assinaturas digitais recebidas de terceiros sem a necessidade de configurar ferramentas de linha de comando.

## Perguntas frequentes

### Esta ferramenta gera novos pares de chaves públicas e privadas?

Não. Esta ferramenta serve apenas para assinar e verificar mensagens. Para gerar chaves, utilize um gerador de chaves RSA ou SSH.

### Minha chave privada é enviada para algum servidor?

Não. Todo o processo de assinatura e verificação ocorre localmente no seu navegador usando o módulo de criptografia do Node, sem qualquer tráfego de rede.

### Por que estou recebendo um erro de verificação inválida?

Certifique-se de que o algoritmo selecionado corresponde exatamente ao tipo de chave colada (por exemplo, chave RSA com RSA-PSS) e que a mensagem não foi alterada.

### Quais algoritmos de assinatura são suportados?

A ferramenta suporta RSA-PSS (SHA-256), ECDSA (P-256, SHA-256) e Ed25519.

### Qual é o formato esperado para as chaves e a assinatura?

As chaves devem estar no formato PEM (com os cabeçalhos BEGIN/END) e a assinatura deve ser fornecida em formato codificado em base64.

## Ferramentas relacionadas

- [Gerador de PKCE Code Verifier e Challenge](https://elysiatools.com/pt/tools/pkce-code-verifier-generator): Gera, valida e verifica pares code_verifier / code_challenge PKCE (RFC 7636) de OAuth2 / OIDC. Três modos: (1) gerar um par novo a partir de bytes aleatórios criptográficos (256/384/512/768 bits), (2) auditar um verifier existente frente ao RFC — comprimento (43–128), charset \[A-Za-z0-9-._~\] e ≥256 bits de entropia, e (3) verificar um par recalculando BASE64URL(SHA256(verifier)). Opcionalmente constrói a URL completa de autorização e o corpo de troca de token. Complementa o nonce-generator genérico (que só emite o par) com auditoria de conformidade RFC e verificação de pares.
- [Gerador e Verificador Ed25519 / X25519](https://elysiatools.com/pt/tools/ed25519-x25519-keygen-signature-verifier): Gera chaves Ed25519 ou X25519 e suporta assinatura e verificacao de mensagens com Ed25519
- [Gerador de Data URI](https://elysiatools.com/pt/tools/data-uri-generator): Converte arquivos em Data URIs (Base64 ou porcentagem-codificada) para incorporar imagens, fontes e recursos diretamente em HTML, CSS ou Markdown
- [Criptografar / Descriptografar RSA](https://elysiatools.com/pt/tools/rsa-encrypt-decrypt): Criptografa texto com uma chave pública RSA ou descriptografa o texto cifrado com a chave privada correspondente, usando padding OAEP (SHA-1 ou SHA-256). Trata mensagens longas em blocos. Chaves e dados ficam locais. PKCS#1 v1.5 não é oferecido (Node o desabilita para descriptografia devido a ataques Bleichenbacher).
- [Gerador aleatório seguro](https://elysiatools.com/pt/tools/secure-random-generator): Gera material de chave aleatório criptograficamente seguro guiado por orçamento de entropia — peça N bits de entropia, obtenha saída hex/base64/base64url. Também suporta strings com alfabeto personalizado via crypto.randomInt (amostragem por rejeição interna, sem viés de módulo). Para qualquer segredo/chave/token, use isto em vez de ferramentas baseadas em Math.random.
- [Nota Segura de Compartilhamento AGEX](https://elysiatools.com/pt/tools/agex-secure-share-note): Gera uma nota clara para que o destinatario saiba como descriptografar e verificar um bundle AGEX
- [Gerador e Analisador de JWK](https://elysiatools.com/pt/tools/jwk-generator): Gera JSON Web Keys (JWK) para RSA, EC (P-256/P-384/P-521/secp256k1) e OKP (Ed25519/Ed448/X25519/X448), ou analisa um JWK existente para inspecionar parâmetros, impressão e metadados
- [Gerador de OTP numérico](https://elysiatools.com/pt/tools/otp-generator): Gera códigos numéricos de uso único criptograficamente seguros (verificação por SMS / e-mail, códigos de sorteio, PINs de evento) com comprimento configurável (3-10 dígitos), saída em lote, exclusão opcional de dígitos ambíguos e contagem regressiva de expiração. Usa crypto.randomInt, não Math.random.

## Exemplos

- [Exemplos de Processamento de Imagem Web Python](https://elysiatools.com/pt/samples/web-image-processing-python): Exemplos de processamento de imagem Web Python usando PIL/Pillow incluindo leitura, salvamento, redimensionamento e conversão de formato
- [Exemplos de Processamento de Imagem Android Java](https://elysiatools.com/pt/samples/android-image-processing-java): Exemplos de processamento de imagem Android Java incluindo leitura/escrita, dimensionamento e conversão de formato
- [Exemplos de Processamento de Imagem Android Kotlin](https://elysiatools.com/pt/samples/android-image-processing-kotlin): Exemplos de processamento de imagem Android Kotlin incluindo leitura/escrita, dimensionamento e conversão de formato
- [Exemplos de Processamento de Imagem Web Rust](https://elysiatools.com/pt/samples/web-image-processing-rust): Exemplos de processamento de imagem Web Rust incluindo leitura/gravação, redimensionamento e conversão de formato

## Conteúdo relacionado

- [Ferramentas de codificacao e conversao de audio](https://elysiatools.com/pt/hubs/audio-convert): Compare conversao de formatos de audio, ajustes de bitrate, conversao de taxa de amostragem, troca de codec e exportacao em um unico hub.
- [Ferramentas de conversao de formatos de imagem e exportacao animada](https://elysiatools.com/pt/hubs/image-convert): Compare conversores de imagem para JPG, PNG, GIF, AVIF, WebP, TIFF, ICO, base64 e saidas voltadas para animacao em um unico hub.
- [Ferramentas de intercambio JSON e traducao de formatos](https://elysiatools.com/pt/hubs/json-convert): Compare ferramentas de conversao JSON para CSV, YAML, TOML, GraphQL, XML, Markdown, Excel, BSON, EDN e outros formatos estruturados em um unico hub.
- [Ferramentas de conversao de espacos de cor para web e impressao](https://elysiatools.com/pt/hubs/design-convert): Ferramentas reunidas para conversao de espacos de cor entre web e impressao em um unico hub.
