# Generador de firma digital

Firma un mensaje con una clave privada o verifica una firma con una clave pública — soporta RSA-PSS (SHA-256), ECDSA (P-256) y Ed25519. Criptografía puramente local (Node crypto.createSign/createVerify), sin red. Pega una clave PEM para firmar o verificar una firma base64. Esta herramienta firma/verifica; no genera pares de claves.

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

- **Categoría:** Security

- **Palabras clave:** firma digital, firmar, verificar, RSA-PSS, ECDSA, Ed25519, asimétrico

## Descripción general

Esta herramienta realiza **firmas digitales asimétricas** — la criptografía detrás de la firma de código, la procedencia de software (Sigstore/SLSA), la firma de documentos y las APIs autenticadas.

**Dos modos:**
- **Firmar**: pega un mensaje y una **clave privada** PEM, obtén una firma base64.
- **Verificar**: pega un mensaje, una **clave pública** PEM y una firma base64, obtén VÁLIDO/NO VÁLIDO.

**Tres algoritmos** (deben coincidir con el tipo de clave que pegues):
- **RSA-PSS (SHA-256)** — el esquema moderno de firma RSA (probabilístico, con salt). Preferido sobre el antiguo PKCS#1 v1.5. Requiere clave RSA.
- **ECDSA (P-256, SHA-256)** — firmas de curva elíptica; claves más cortas que RSA para seguridad equivalente. Usa la codificación IEEE P1363 (`r‖s`) para salida determinista de ancho fijo. Requiere clave EC P-256 (prime256v1).
- **Ed25519** — EdDSA rápido y determinista sobre Curve25519; una longitud de firma (64 bytes), sin selección de parámetros. Requiere clave Ed25519.

**Cómo usar.** Primero genera un par de claves con el **RSA Key Generator** o **SSH Key Generator** (esta herramienta no genera claves). Luego:
1. Firma un mensaje con la clave privada → copia la firma base64.
2. Entrega al destinatario el mensaje + firma + tu **clave pública**.
3. El destinatario pega los tres aquí, elige el algoritmo coincidente y verifica.

**Coincidencia clave/algoritmo.** El algoritmo debe coincidir con el tipo de clave: RSA solo con RSA-PSS, EC P-256 con ECDSA, Ed25519 con Ed25519. Una discrepancia da error de verificación.

**Seguridad.** Todo el firmado ocurre localmente en tu navegador vía el módulo `crypto` de Node — la clave privada nunca sale de tu dispositivo. Las firmas son no repudiables: solo el titular de la clave privada pudo haber producido una firma que la clave pública verifica.

## Entradas

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

## Cuándo usarlo

- Cuando necesite firmar un mensaje de texto o un payload de API utilizando una clave privada PEM existente.
- Al recibir un mensaje firmado y requerir la validación de su autenticidad mediante la clave pública del remitente.
- Para realizar operaciones criptográficas asimétricas rápidas sin exponer sus claves privadas a servidores externos.

## Cómo funciona

- Seleccione el modo de operación: 'Firmar' para generar una firma o 'Verificar' para validar una firma existente.
- Elija el algoritmo criptográfico que coincida con su tipo de clave (RSA-PSS, ECDSA o Ed25519) e introduzca el mensaje.
- Pegue la clave PEM correspondiente (privada para firmar, pública para verificar) y, en modo verificación, la firma en formato base64.
- El módulo criptográfico local procesa los datos en el navegador y devuelve la firma generada o el veredicto de validez.

## Casos de uso

- Autenticación de mensajes para APIs que requieren firmas digitales asimétricas en las cabeceras de petición.
- Verificación manual de la procedencia y la integridad de un archivo de configuración o manifiesto de software.
- Demostración práctica y pruebas de flujos criptográficos asimétricos con claves RSA, ECDSA o Ed25519.

## Preguntas frecuentes

### ¿Esta herramienta genera pares de claves públicas y privadas?

No, esta herramienta solo firma y verifica mensajes. Debe generar sus claves previamente con un generador de claves RSA o SSH.

### ¿Mis claves privadas se envían a algún servidor?

No. Todo el proceso de firma y verificación se ejecuta localmente en su navegador mediante criptografía del lado del cliente.

### ¿Qué algoritmos de firma están soportados?

Soporta RSA-PSS (SHA-256), ECDSA (P-256, SHA-256) y Ed25519.

### ¿Por qué obtengo un error de verificación al validar una firma?

Asegúrese de que el algoritmo seleccionado coincida exactamente con el tipo de clave utilizada y que el mensaje no haya sido modificado.

### ¿En qué formato deben estar las claves y la firma?

Las claves deben estar en formato PEM (bloques de texto delimitados) y la firma debe estar codificada en base64.

## Herramientas relacionadas

- [Generador de PKCE Code Verifier y Challenge](https://elysiatools.com/es/tools/pkce-code-verifier-generator): Genera, valida y verifica pares code_verifier / code_challenge PKCE (RFC 7636) de OAuth2 / OIDC. Tres modos: (1) generar un par nuevo a partir de bytes aleatorios criptográficos (256/384/512/768 bits), (2) auditar un verifier existente frente al RFC — longitud (43–128), charset \[A-Za-z0-9-._~\] y ≥256 bits de entropía, y (3) verificar un par recomputando BASE64URL(SHA256(verifier)). Opcionalmente construye la URL completa de autorización y el cuerpo del intercambio de token. Complementa al nonce-genérico (que solo emite el par) con auditoría de cumplimiento RFC y verificación de pares.
- [Generador y Verificador Ed25519 / X25519](https://elysiatools.com/es/tools/ed25519-x25519-keygen-signature-verifier): Genera claves Ed25519 o X25519 y admite firma y verificacion de mensajes con Ed25519
- [Generador de Data URI](https://elysiatools.com/es/tools/data-uri-generator): Convierte archivos en Data URIs (Base64 o porcentaje-codificado) para incrustar imágenes, fuentes y recursos directamente en HTML, CSS o Markdown
- [Cifrado / Descifrado RSA](https://elysiatools.com/es/tools/rsa-encrypt-decrypt): Cifra texto con una clave pública RSA o descifra el texto cifrado con la clave privada correspondiente, usando padding OAEP (SHA-1 o SHA-256). Maneja mensajes largos por bloques. Las claves y datos se quedan en local. No se ofrece PKCS#1 v1.5 (Node lo deshabilita para descifrar por ataques Bleichenbacher).
- [Generador aleatorio seguro](https://elysiatools.com/es/tools/secure-random-generator): Genera material de clave aleatorio criptográficamente seguro guiado por un presupuesto de entropía — pide N bits de entropía y obtén salida hex/base64/base64url. También soporta cadenas con alfabeto personalizado vía crypto.randomInt (muestreo por rechazo interno, sin sesgo de módulo). Para cualquier secreto/clave/token, usa esto en lugar de herramientas basadas en Math.random.
- [Nota Segura para Compartir AGEX](https://elysiatools.com/es/tools/agex-secure-share-note): Genera una nota clara para que el destinatario sepa como descifrar y verificar un bundle AGEX
- [Generador y Analizador de JWK](https://elysiatools.com/es/tools/jwk-generator): Genera JSON Web Keys (JWK) para RSA, EC (P-256/P-384/P-521/secp256k1) y OKP (Ed25519/Ed448/X25519/X448), o analiza un JWK existente para inspeccionar parámetros, huella y metadatos
- [Generador de OTP numérico](https://elysiatools.com/es/tools/otp-generator): Genera códigos numéricos de un solo uso criptográficamente seguros (verificación por SMS / email, códigos de sorteo, PIN de eventos) con longitud configurable (3-10 dígitos), salida masiva, exclusión opcional de dígitos ambiguos y cuenta atrás de caducidad. Usa crypto.randomInt, no Math.random.

## Ejemplos

- [Ejemplos de Procesamiento de Imágenes Web Python](https://elysiatools.com/es/samples/web-image-processing-python): Ejemplos de procesamiento de imágenes Web Python usando PIL/Pillow incluyendo lectura, guardado, redimensionamiento y conversión de formato
- [Ejemplos de Procesamiento de Imágenes Android Java](https://elysiatools.com/es/samples/android-image-processing-java): Ejemplos de procesamiento de imágenes Android Java incluyendo lectura/escritura, escalado y conversión de formato
- [Ejemplos de Procesamiento de Imágenes Android Kotlin](https://elysiatools.com/es/samples/android-image-processing-kotlin): Ejemplos de procesamiento de imágenes Android Kotlin incluyendo lectura/escritura, escalado y conversión de formato
- [Ejemplos de Procesamiento de Imágenes Web Rust](https://elysiatools.com/es/samples/web-image-processing-rust): Ejemplos de procesamiento de imágenes Web Rust incluyendo lectura/escritura, escalado y conversión de formato

## Contenido relacionado

- [Herramientas de codificacion y conversion de audio](https://elysiatools.com/es/hubs/audio-convert): Compara conversion de formatos de audio, cambios de bitrate, conversion de frecuencia de muestreo, cambio de codec y exportacion en un solo hub.
- [Herramientas de conversion de formatos de imagen y exportacion animada](https://elysiatools.com/es/hubs/image-convert): Compara convertidores de imagen para JPG, PNG, GIF, AVIF, WebP, TIFF, ICO, base64 y salidas pensadas para animacion en un solo hub.
- [Herramientas de intercambio JSON y traduccion de formatos](https://elysiatools.com/es/hubs/json-convert): Compara herramientas de conversion JSON para CSV, YAML, TOML, GraphQL, XML, Markdown, Excel, BSON, EDN y otros formatos estructurados en un solo hub.
- [Herramientas de conversion de espacios de color para web e impresion](https://elysiatools.com/es/hubs/design-convert): Herramientas reunidas para conversion de espacios de color entre web e impresion en un solo hub.
