Codificador/decodificador de tokens Fernet
Cifra mensajes en tokens Fernet (AES-128-CBC + HMAC-SHA256) o decodifica y verifica tokens Fernet con validación de marca de tiempo y HMAC. Compatible con la librería cryptography de Python. Todo el procesamiento es local y privado en tu navegador.
The key is derived from your password using PBKDF2 + HKDF (480,000 iterations)
Enter a password and message, then click Encrypt to Fernet Token
¿Por qué usar nuestro codificador/decodificador de tokens Fernet?
- Compatible con la librería cryptography de Python: los tokens Fernet generados por nuestro codificador se pueden descifrar con la librería cryptography.fernet de Python, y viceversa. Compatibilidad total con la especificación estándar de Fernet (AES-128-CBC + HMAC-SHA256).
- Verificación de firma HMAC: cada token Fernet incluye una firma HMAC-SHA256 que se verifica durante el descifrado. Si el token ha sido manipulado o se usa una contraseña incorrecta, la comprobación HMAC falla de inmediato.
- Validación de marca de tiempo y antigüedad del token: cada token Fernet contiene una marca de tiempo Unix incrustada que muestra exactamente cuándo se creó. Al descifrar, el codificador Fernet muestra la antigüedad del token y su hora de creación para auditoría y comprobación de caducidad.
- Derivación segura de claves con PBKDF2: tu contraseña se convierte en una clave de 32 bytes compatible con Fernet usando PBKDF2 con 480.000 iteraciones y expansión HKDF. El formato de salida combinada de clave y token facilita compartir: solo tienes que pegar la cadena completa.
Casos de uso habituales del codificador/decodificador de tokens Fernet
- Intercambio seguro de mensajes: usa el codificador de tokens Fernet para cifrar mensajes antes de enviarlos por correo electrónico, chat o redes sociales. El destinatario puede descifrar el token Fernet con la misma contraseña. No hace falta ningún servicio de terceros.
- Integración para desarrolladores de Python: los desarrolladores de Python pueden usar este codificador Fernet online para generar tokens rápidamente para pruebas o depuración. La salida es totalmente compatible con el módulo cryptography.fernet de Python: no hace falta escribir scripts de prueba.
- Generación de tokens para API: genera tokens Fernet para la autenticación de API o la gestión de sesiones. La marca de tiempo incrustada permite a los servidores verificar la frescura del token, mientras que el HMAC garantiza que no se ha manipulado.
- Almacenamiento de secretos de configuración: cifra valores de configuración sensibles (claves de API, contraseñas de bases de datos o credenciales de servicios) en tokens Fernet. Guarda los tokens en archivos de configuración y descífralos en tiempo de ejecución con la contraseña maestra.
- Portabilidad de datos entre plataformas: los tokens Fernet son independientes de la plataforma. Cifra datos en tu navegador con nuestro codificador Fernet y descífralos después en Python, Go, Rust o cualquier lenguaje con una librería compatible con Fernet.
- Cifrado de cookies y sesiones: cifra datos de sesión web o cookies en tokens Fernet. La firma HMAC evita manipulaciones, mientras que la marca de tiempo permite la caducidad de la sesión. Todo el procesamiento es local en el navegador para pruebas y prototipos.
¿Qué es un token Fernet?
Un token Fernet es un formato de cifrado simétrico definido por la librería cryptography de Python. Combina el cifrado AES-128-CBC con la autenticación HMAC-SHA256. Cada token Fernet contiene un byte de versión, una marca de tiempo Unix, un vector de inicialización (IV) aleatorio, el texto cifrado y una firma HMAC, todo empaquetado en una cadena codificada en Base64. El formato del token garantiza tanto la confidencialidad como la integridad: el texto cifrado no se puede leer sin la clave, y el HMAC evita manipulaciones no detectadas. Esta doble protección hace que los tokens Fernet sean adecuados para el intercambio seguro de mensajes, la gestión de sesiones y el cifrado de configuraciones.
Cómo funciona nuestro codificador/decodificador de tokens Fernet
- Derivación de la clave: tu contraseña se convierte en una clave Fernet de 32 bytes usando PBKDF2 con 480.000 iteraciones de SHA-256, seguidas de una expansión HKDF. Los primeros 16 bytes se convierten en la clave de firma HMAC y los últimos 16 bytes en la clave de cifrado AES.
- Cifrado (codificación): se genera un IV aleatorio de 16 bytes. El texto plano se rellena con PKCS7, se cifra con AES-128-CBC y se ensambla en el formato del token: byte de versión (0x80) + marca de tiempo de 8 bytes + IV + texto cifrado + HMAC. Todo el token binario se codifica en Base64.
- Descifrado (decodificación): el token se decodifica de Base64, se analiza en sus componentes, se verifica el HMAC con la clave de firma y, si es válido, el texto cifrado se descifra con AES-128-CBC y se le quita el relleno.
Estructura del token Fernet
- Versión (1 byte): siempre 0x80 (128), que identifica esto como un token Fernet de versión 2. Las versiones futuras podrían usar valores distintos.
- Marca de tiempo (8 bytes): marca de tiempo Unix en big-endian que indica cuándo se creó el token. Útil para comprobaciones de caducidad y auditoría.
- IV (16 bytes): vector de inicialización aleatorio para AES-128-CBC. Se genera un IV distinto en cada cifrado, lo que garantiza que textos planos idénticos produzcan tokens diferentes.
- Texto cifrado (variable): el texto plano rellenado con PKCS7 y cifrado con AES-128-CBC usando la clave de cifrado de 16 bytes derivada de tu contraseña.
- HMAC (32 bytes): HMAC SHA-256 sobre la versión, la marca de tiempo, el IV y el texto cifrado, calculado con la clave de firma de 16 bytes. Esto evita manipulaciones no detectadas.
Privacidad, seguridad y notas de uso
El codificador/decodificador de tokens Fernet procesa todos los datos por completo en tu navegador usando la Web Crypto API. Ningún dato se sube nunca a ningún servidor, se guarda en ninguna base de datos ni se comparte con terceros. Las operaciones criptográficas (derivación de clave PBKDF2, cifrado y descifrado AES-128-CBC, y firma y verificación HMAC-SHA256) usan todas las primitivas criptográficas nativas del navegador para máxima seguridad. Guarda tu contraseña a salvo: no hay mecanismo de recuperación de contraseña. El formato de salida combinada de clave y token te permite compartir tanto el material de clave como el token en una sola cadena.
Preguntas frecuentes
Un token Fernet es un formato de cifrado simétrico definido por la librería cryptography de Python que combina el cifrado AES-128-CBC con la autenticación HMAC-SHA256. Cada token contiene un byte de versión, una marca de tiempo Unix, un IV aleatorio, el texto cifrado y una firma HMAC, todo empaquetado en una cadena codificada en Base64 que se puede transmitir o almacenar con seguridad.
Sí. Nuestro codificador/decodificador de tokens Fernet es totalmente compatible con el módulo cryptography.fernet de Python. Los tokens generados en el navegador se pueden descifrar en Python, y los tokens generados por el módulo Fernet de Python se pueden descifrar aquí, siempre que se use la misma clave o contraseña. Ten en cuenta, eso sí, que nuestra herramienta usa PBKDF2 + HKDF para derivar la clave a partir de la contraseña, mientras que el Fernet de Python suele usar una clave en bruto de 32 bytes.
Tu contraseña se convierte en una clave Fernet de 32 bytes usando PBKDF2 con 480.000 iteraciones de SHA-256, seguidas de una expansión HKDF. Los primeros 16 bytes se convierten en la clave de firma HMAC y los últimos 16 bytes en la clave de cifrado AES. Por comodidad, nuestro formato de salida combinada antepone la sal de PBKDF2 a la clave, lo que hace que la salida sea autosuficiente para el descifrado.
El formato combinado es una función de comodidad que antepone el material de clave codificado con la sal al token Fernet, separados por un punto. Puedes pegar la cadena completa para descifrarla más tarde: el decodificador extraerá la sal, regenerará la clave a partir de tu contraseña y descifrará el token. También puedes dividir en el punto y usar la segunda parte como token Fernet independiente.
Sí, totalmente. Todas las operaciones criptográficas (derivación de clave PBKDF2, cifrado y descifrado AES-128-CBC, y firma y verificación HMAC-SHA256) usan la Web Crypto API y se ejecutan por completo en tu navegador. Tu contraseña y tu texto plano nunca salen de tu dispositivo. No se sube, se almacena ni se comparte ningún dato con ningún servidor.
La verificación de la firma HMAC-SHA256 fallará y el decodificador informará de un error. El HMAC se calcula sobre el byte de versión, la marca de tiempo, el IV y el texto cifrado, así que cualquier modificación en cualquier parte del token hará que la comprobación HMAC falle. Esto evita manipulaciones no detectadas y garantiza la integridad de tus datos cifrados.
No. Se requiere una contraseña tanto para cifrar como para descifrar. La especificación Fernet exige una clave de 32 bytes, y nuestra herramienta deriva esa clave de tu contraseña usando PBKDF2. La contraseña es la única forma de cifrar o descifrar tokens: no hay mecanismo de recuperación de contraseña, así que guarda bien la tuya.
Los tokens Fernet tienen un sobrecargo fijo de 57 bytes (versión 1 + marca de tiempo 8 + IV 16 + HMAC 32) antes del texto cifrado. Tu texto plano se rellena hasta el límite de 16 bytes más cercano y se cifra. Un mensaje de 10 bytes produce un token de aproximadamente 92 bytes en Base64. No hay un límite práctico de tamaño, ya que todo el procesamiento es local.
Sí, 100 % gratis. No hay registro, ni plan premium, ni límite de uso. La herramienta funciona por completo en tu navegador usando la Web Crypto API y siempre será gratuita en Aback Tools.