piapia123
es

Cifrar y descifrar Ansible Vault

Cifrado

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

Compatible byte a byte con `ansible-vault`: las claves salen de PBKDF2-HMAC-SHA256(frase de contraseña, salt, 10000 rondas, 80 bytes) — los primeros 32 bytes son la clave de AES-256-CTR, los siguientes 32 la del HMAC y los últimos 16 el IV; el cuerpo es doble hexadecimal y lleva el salt y el HMAC. El descifrado verifica el HMAC antes de descifrar, así que una frase de contraseña incorrecta da un error claro en lugar de basura. Se admiten las cabeceras `1.1` y `1.2` (etiqueta `vault-id`). Todo se ejecuta en local; ni la frase de contraseña ni el texto plano se suben.

Funciones

  • La misma derivación de clave que ansible-vault: PBKDF2-HMAC-SHA256, 10000 rondas
  • AES-256-CTR (contador de bloque completo) con relleno PKCS#7
  • Envoltorio de doble hexadecimal cortado a 80 caracteres por línea
  • Las cabeceras 1.1 y 1.2 (etiqueta vault-id)
  • Verifica el HMAC antes de descifrar, así que una frase incorrecta es un error claro
  • El salt del cifrado viene de crypto.getRandomValues
  • Un AES en JS puro que no depende de Web Crypto (solo https)
  • Copia una fila suelta o todas

Cómo se usa

  1. Elige Cifrar o Descifrar y escribe la frase de contraseña
  2. Cifrar: pega el texto plano (y, si quieres, una etiqueta vault-id)
  3. Descifrar: pega el texto `$ANSIBLE_VAULT` entero
  4. Los resultados y el desglose (salt, HMAC, cabecera) salen enseguida

Preguntas frecuentes

¿Qué pasa con la frase de contraseña equivocada?
Obtienes un claro «la verificación del HMAC ha fallado». Esto difiere de muchas herramientas simétricas, donde una clave equivocada «funciona» en silencio y devuelve bytes aleatorios. Ansible verifica el HMAC antes de descifrar, y esta herramienta también: un error claro es mejor que una pantalla de basura sobre la que hay que conjeturar.
¿Por qué el archivo va en doble hexadecimal?
El cuerpo es primero el texto ASCII `hex(salt) \n hex(hmac) \n hex(cifrado)` y todo eso se codifica otra vez en hexadecimal, y luego se corta a 80 columnas. Decodificar solo una vez da algo que parece texto pero es hexadecimal: ese es el formato de Ansible, no un fallo de aquí.
¿Es fuerte la protección con frase de contraseña?
Vault usa 10000 rondas de PBKDF2, pocas para los estándares actuales; lo que aguanta es la fuerza de la propia frase de contraseña. Cambiar el número rompería la compatibilidad, así que no esperes que se vuelva más fuerte: usa una frase de contraseña de Vault larga y aleatoria, no una palabra de diccionario.
¿Puede con contenido binario?
No. Esta herramienta trata la carga como texto UTF-8 y lo dice claramente cuando los bytes descifrados no son texto válido (un almacén de claves cifrado, por ejemplo). Para binario, usa el comando `ansible-vault`.

Herramientas relacionadas