Ir al contenido
Allin

Cifrar un archivo y enviar la clave por otra vía

Publicado el 6/8/2026 · 13 min de lectura · Herramientas para desarrolladores

Daniel Okonkwo

Daniel OkonkwoDesarrollador front-end y redactor de Tecnología en Allin

Rendimiento web · Formatos de archivo

Verificado con 4 fuentes

Ver perfil
En resumen

La herramienta de cifrado de archivos funciona entera en tu navegador y usa AES-256-GCM a través de la API WebCrypto. Leyendo el código publicado y ejecutándolo: tu frase de contraseña se estira con PBKDF2-HMAC-SHA256 durante 150 000 iteraciones hasta una clave de 256 bits; en cada cifrado se generan una sal aleatoria de 16 bytes y un nonce aleatorio de 12 bytes; ambos se escriben en claro al principio del archivo .enc, seguidos del cifrado y de una etiqueta de autenticación de 128 bits. La sobrecarga medida es constante: 44 bytes, desde un archivo de 1 MB hasta uno de 1 GB. Cifrar dos veces el mismo archivo con la misma frase da dos salidas distintas. Invertir un bit del cifrado, o un bit del nonce, hace que el descifrado falle en vez de devolver datos dañados en silencio. Es una construcción sólida, y no es ahí donde se equivoca la gente. El error está en la entrega: el archivo cifrado y la frase de contraseña viajan por el mismo camino. Un adjunto cifrado más «la contraseña es Marseille2019» en el mismo hilo no es cifrado, es un retraso: quien lea el buzón tiene las dos mitades. Un segundo canal es otro medio, idealmente en otro dispositivo y otra cuenta: el archivo por correo, la frase dicha en voz alta por teléfono. Y como el contenedor .enc no tiene cabecera alguna — sus primeros bytes son la sal en bruto —, nada estándar lo abre: quien lo reciba necesita la misma herramienta. Si se pierde la frase de contraseña, el archivo se pierde con ella. Es el diseño funcionando, no un fallo.

El cifrado es la mitad fácil. Esto es exactamente lo que la herramienta le hace a tu archivo — cifrado, derivación de clave, sal, nonce — y por qué un adjunto cifrado con la contraseña en el mismo hilo no protege nada.

Qué le hace realmente la herramienta a tu archivo

Vale la pena ser preciso, porque «AES-256» en un botón no dice casi nada: las mismas tres letras cubren construcciones excelentes y construcciones rotas. Esta llama a la implementación WebCrypto del propio navegador en modo AES-GCM, es decir, cifrado autenticado: no solo oculta el contenido, también demuestra que el contenido no ha sido alterado. La clave es de 256 bits. La etiqueta de autenticación es de 128 bits, y puedes comprobarlo sin leer una línea de código: un texto claro de 71 bytes dio un cifrado de 87 bytes, exactamente los dieciséis bytes extra que la RFC 5116 fija para AES-256-GCM.

Una frase de contraseña no es una clave: hay que convertirla en una. La herramienta usa PBKDF2-HMAC-SHA256 durante 150 000 iteraciones, con una sal de 16 bytes sacada de la fuente aleatoria criptográfica del navegador. La sal es nueva en cada cifrado, que es lo que impide que una tabla precalculada cubra varios archivos a la vez. El nonce es de 12 bytes y también cambia cada vez — comprobado cifrando dos veces el mismo archivo con la misma frase y comparando: sal distinta, nonce distinto, cifrado distinto. Ambos se guardan en claro al principio de la salida, y eso es correcto, no descuidado. Una sal y un nonce no son secretos; solo tienen que ser únicos, y quien descifra los necesita para reconstruir la clave.

La mitad de autenticación no es un adorno. Invierte un solo bit en cualquier punto del cifrado y el descifrado se niega; invierte un solo bit del nonce guardado y también se niega; dale una frase que difiera en una mayúscula y se niega. En todos los casos obtienes un error, nunca un archivo lleno de basura con aspecto plausible. Esa distinción importa más de lo que parece: un modo sin autenticación, como AES-CBC sin un control de integridad aparte, devuelve datos dañados sin rechistar, y un atacante capaz de modificar el archivo en tránsito a veces puede dirigir ese daño.

El error que todos cometen: la clave viaja con el archivo

La forma es esta. Ciframos la hoja de nóminas, adjuntamos el archivo .enc a un correo y — como el destinatario obviamente la necesita — escribimos la frase de contraseña en el mismo mensaje. O en un mensaje posterior, que parece más prudente y no lo es. O en una respuesta del mismo hilo, que es peor, porque ahora ambas mitades están en una sola conversación que cualquier búsqueda sacará junta. Sea cual sea la variante, has puesto una cerradura y has pegado la llave en la puerta.

Si «lo mando en un segundo correo» no funciona es porque no cambia quién puede leerlo. El cifrado en tránsito no es el modelo de amenaza aquí: el correo entre grandes proveedores ya va cifrado por el cable. Contra lo que te defiendes de verdad es contra alguien que lee el buzón: una cuenta comprometida, un teléfono desbloqueado, una dirección familiar compartida, una empresa con acceso legal al archivo, una copia de seguridad filtrada, un hilo reenviado que recogió un destinatario de más. Todos esos casos exponen el segundo correo exactamente igual que el primero. Dos mensajes en el mismo buzón son un solo canal usado dos veces.

Qué es realmente un segundo canal

Un segundo canal tiene que diferir en lo que de verdad falla. Conviene separar tres ejes. Un medio distinto — correo frente a voz frente a papel — para que un protocolo roto no entregue las dos mitades. Una cuenta distinta — tu buzón de trabajo frente a una mensajería personal — para que una sola credencial no abra ambas. Y un dispositivo distinto, para que un teléfono robado o infectado no guarde el archivo y la frase uno al lado del otro. Manda el archivo desde un portátil y la frase desde la aplicación de mensajería de ese mismo portátil, y habrás movido la llave al otro lado del escritorio, no fuera de la habitación.

Por eso una frase de contraseña dictada por teléfono es realmente mejor, y no solo anticuada. No deja copia: ningún mensaje que buscar luego, ninguna copia de seguridad que se filtre, ningún hilo reenviado por error, ningún archivo que un administrador pueda abrir dentro de dos años. Interceptarla exige estar en la línea en el momento exacto en que se pronuncia, un ataque mucho más estrecho y mucho más caro que leer un buzón con calma. Además aporta algo que ningún canal da por sí solo: reconoces la voz, así que sabes quién la recibió. Dicta despacio, usa el alfabeto OTAN para lo ambiguo y pide que te la repitan.

Lo que se olvida: quien lo recibe tiene que poder abrirlo

Un archivo cifrado que nadie puede descifrar al otro lado no es seguridad, es una entrega fallida — y el arreglo habitual es peor que el problema original, porque acaba con alguien reenviando el archivo sin cifrar «solo por esta vez». Así que comprueba el otro extremo antes de enviar. El archivo .enc que produce esta herramienta no tiene cabecera alguna: sus primeros bytes son la sal aleatoria en bruto, sin número mágico, sin versión, sin nombre de algoritmo y sin el nombre del archivo original. Es una disposición propia. No es un ZIP, ni un mensaje OpenPGP, ni un archivo age, ni la salida de openssl enc — y ninguno de ellos lo abrirá.

La consecuencia práctica es buena, eso sí: como la herramienta funciona entera en el navegador, quien recibe no tiene que instalar nada, ni crear una cuenta, ni confiar el archivo a un servidor. Abre la misma página, carga el archivo .enc, escribe la frase de contraseña y pulsa descifrar, y el texto claro aterriza en sus descargas. No se sube nada, en ninguna dirección. Así que la frase que acompaña al archivo no es la pista de la contraseña: es qué página abrir. Y esa frase mándala por el mismo canal que el archivo, porque no es secreta; solo la contraseña cambia de vía.

Cuando se pierde la frase de contraseña

No se puede hacer nada. Ni el sitio, ni un soporte, ni tú. No hay ninguna cuenta que guarde una copia, ninguna clave de recuperación, ningún depósito y ninguna puerta trasera: la clave nunca existió en otro sitio que la memoria de la pestaña que la fabricó, y se derivaba de la frase sobre la marcha. Pierde la frase y el archivo es un bloque de ruido que seguirá siendo ruido. Vale la pena decirlo claro, porque se da por supuesto que existe una vía de recuperación, como con la contraseña de un correo web.

Y eso es el diseño funcionando, no fallando. Una vía de recuperación es por definición una segunda entrada, y una segunda entrada es algo por lo que también puede pasar un atacante — o que un tribunal puede obligar a alguien a abrir. La respuesta correcta no es desear una puerta trasera, sino guardar la frase en algún sitio duradero antes de necesitarla: una ficha del gestor de contraseñas ligada al nombre del archivo, o papel en un cajón si el archivo va a importar dentro de cinco años. Elige una frase que puedas dictar, porque probablemente tendrás que hacerlo. Cuatro o cinco palabras sin relación ganan a una sola palabra retorcida en ambos frentes: es más fuerte y sobrevive a leerse en voz alta.

Una debilidad honesta: el número de iteraciones

El cifrado no es el eslabón más fino aquí; lo es la derivación de clave. PBKDF2 existe para encarecer la adivinación, y su coste lo fija el número de iteraciones. Esta herramienta usa 150 000. La OWASP Password Storage Cheat Sheet, la referencia de la que parten la mayoría de los defensores, recomienda hoy 600 000 para PBKDF2-HMAC-SHA256. La cifra publicada es la cuarta parte, lo que multiplica por cuatro el rendimiento de un atacante que adivina sin conexión. Medido en un núcleo, 150 000 iteraciones tardan unos 36 milisegundos por intento: un núcleo corriente prueba aproximadamente 28 frases por segundo; el hardware especializado va mucho más lejos, y PBKDF2 le resulta más favorable que una función exigente en memoria como Argon2id.

Esto no hace insegura la herramienta, y no cambia nada del cifrado, la sal ni el nonce, que están bien. Desplaza de dónde viene la seguridad: con una derivación más ligera, la carga recae más sobre la propia frase de contraseña. Una frase de cuatro palabras sacadas al azar de una lista grande queda fuera de alcance en cualquier caso; una palabra del diccionario con un número al final nunca estuvo protegida por el número de iteraciones. Elige la frase como si no hubiera estiramiento alguno, y la diferencia entre 150 000 y 600 000 deja de importarte.

Enviar el archivo por un lado y la frase de contraseña por otro: qué combinaciones separan de verdad las dos mitades
El archivo va porLa frase va por¿Realmente separado?Qué necesita un atacante
Adjunto de correoEl mismo mensajeNoLeer el buzón una vez
Adjunto de correoSegundo correo, misma direcciónNoLeer el buzón una vez
Enlace compartido en la nubeComentario en el mismo archivoNoLa cuenta de la nube
Adjunto de correoMensaje de texto a un teléfonoEn parteEl buzón y el teléfono — pero una copia del teléfono puede tener ambos
Adjunto de correoDicha en voz alta por teléfonoEl buzón más estar en la línea en ese momento
Enlace compartido en la nubeMensajería cifrada de extremo a extremo, otra cuentaDos cuentas distintas en dos servicios
Entregado en una memoria USBDicha en persona, nada escritoAcceso físico a ambos, a la vez
Cifrado de archivosCifra o descifra cualquier archivo con una contraseña (AES-256).Probar la herramienta

Preguntas frecuentes

¿Basta AES-256-GCM por sí solo?
Para el cifrado en sí, sí: es un modo autenticado estándar y la implementación del navegador es la misma que usa HTTPS. Pero un cifrado solo protege lo que protege la clave. Aquí la clave se deriva de tu frase de contraseña, así que el techo real de solidez es la frase, y el fallo real es mandarla por el mismo canal que el archivo. AES-256-GCM no puede hacer nada por ninguno de los dos.
¿Por qué la sal está a la vista al principio del archivo?
Porque no es un secreto y nunca debió serlo. Una sal existe para que la misma frase produzca una clave distinta cada vez, lo que impide que una tabla precalculada ataque muchos archivos a la vez. Solo tiene que ser única, no estar oculta. Lo mismo vale para el nonce. Quien descifra necesita ambos para reconstruir la clave, así que tienen que viajar con el cifrado: esconderlos significaría cifrarlos, lo que exigiría una clave, y volvemos al principio.
¿Puedo mandar la frase de contraseña en un segundo correo?
No, y es la versión más común del error. Dos correos a la misma dirección caen en el mismo buzón, el mismo archivo y la misma copia de seguridad. Quien pueda leer uno puede leer el otro, y una búsqueda por el nombre del remitente los saca juntos. No es un segundo canal, es el mismo canal usado dos veces. Cambia de medio — la voz, o una mensajería en otra cuenta — o el cifrado solo compra el tiempo de desplazar la pantalla.
¿Puede quien lo recibe abrir el .enc con 7-Zip, GPG u openssl?
No. El contenedor es una disposición propia — 16 bytes de sal, 12 de nonce, luego el cifrado y la etiqueta — sin número mágico, sin byte de versión y sin identificador de algoritmo, así que ninguna herramienta estándar puede ni reconocerlo. Quien lo recibe abre la misma página en su navegador, carga el archivo, escribe la frase y pulsa descifrar; no se instala nada y no se sube nada. Dile qué página abrir en el mismo mensaje que el archivo. Esa parte no es secreta.
He perdido la frase de contraseña, ¿de verdad no hay nada que hacer?
De verdad nada. La clave existió solo dentro de la pestaña que la creó, derivada de la frase en el momento del cifrado; no se guarda copia en ningún sitio ni por nadie. No hay clave de recuperación, ni depósito, ni vía de soporte, y esa ausencia es deliberada: cualquier vía de recuperación es una segunda entrada que un atacante también podría usar. Si recuerdas la frase a grandes rasgos, probar variantes a mano es tu única opción, y cada intento cuesta alrededor de una vigésima de segundo.

Artículos que podrían interesarte

Todas las guías
ExplicaciónEntropía de contraseñas: lo que un medidor de fuerza no puede saberLa entropía mide el proceso que produjo una contraseña, no los caracteres que contiene. H = L x log2(R) solo es cierto cuando cada carácter se eligió al azar — y por eso justamente un medidor que puntúa una contraseña inventada por un humano según sus clases de caracteres está midiendo lo que no es.GuíaLo que un gestor de contraseñas no puede medirLa entropía pone precio a un solo ataque: adivinación sin conexión contra un hash robado. Por encima de unos 90 bits la cifra ya no decide nada, y el indicador de este sitio subestimó una contraseña aleatoria de 20 caracteres en 300 tiradas de 300.GuíaAsegurar una red Wi-Fi doméstica: la clave, el protocolo y la red de invitadosLa fuente aleatoria del generador auditada línea a línea, qué elimina realmente SAE, por qué el modo de transición devuelve casi todo, y lo que se deja fuera cualquier guía de red de invitados.GuíaGenerar correctamente una clave secreta de aplicaciónCómo distinguir un generador de claves secretas sólido de uno dudoso, con este como ejemplo trabajado: qué fuente aleatoria llama, cómo calcular la entropía por tu cuenta y qué se rompe de verdad el día que rotas la clave.TutorialCómo crear una contraseña seguraLa longitud gana a la complejidad. Aquí tienes por qué una frase de cuatro palabras es fuerte, por qué nunca reutilizar una contraseña, y cómo un gestor lo hace fácil.ExplicaciónQué hay dentro de un JWT y qué no protegeUn JWT está firmado, no cifrado. Cualquiera que tenga el token puede decodificar la carga y leer todas sus reclamaciones. Aquí tienes un token real, decodificado sin ninguna clave, más los tres ataques que la firma debe frenar y el único problema que no puede resolver.

Herramientas relacionadas

El cifrado, la derivación de clave, la sal, el nonce y la estructura del contenedor descritos aquí se leyeron en el código de la herramienta y se confirmaron ejecutándola en agosto de 2026; el software cambia, así que comprueba antes de apoyarte en una cifra concreta. Esto es orientación general para manejar tus propios archivos, no una auditoría de seguridad de tu organización, y los datos regulados o clasificados se rigen por normas que ninguna herramienta de navegador puede satisfacer por sí sola.

Fuentes

¿Has detectado un error en este artículo?