Перейти к содержимому
Aback Tools Logo

Кодировщик/декодировщик токенов Fernet

Шифруйте сообщения в токены Fernet (AES-128-CBC + HMAC-SHA256) или декодируйте и проверяйте токены Fernet с валидацией метки времени и HMAC. Совместимо с библиотекой cryptography для Python. Вся обработка выполняется локально и приватно в вашем браузере.

Fernet Token Encoder/Decoder
Encrypt messages into Fernet token format (AES-128-CBC + HMAC-SHA256) compatible with Python's cryptography library. Decode and verify Fernet tokens with timestamp and HMAC validation. All processing is local in your browser.

The key is derived from your password using PBKDF2 + HKDF (480,000 iterations)

Enter a password and message, then click Encrypt to Fernet Token

Зачем использовать наш кодировщик/декодировщик токенов Fernet?

  • Совместимость с библиотекой cryptography для Python: токены Fernet, созданные нашим кодировщиком, можно расшифровать библиотекой cryptography.fernet для Python, и наоборот. Полная совместимость со стандартной спецификацией Fernet (AES-128-CBC + HMAC-SHA256).
  • Проверка подписи HMAC: каждый токен Fernet содержит подпись HMAC-SHA256, которая проверяется при расшифровке. Если токен был изменён или используется неверный пароль, проверка HMAC сразу не пройдёт.
  • Проверка метки времени и возраста токена: каждый токен Fernet содержит встроенную метку времени Unix, показывающую, когда он создан. При расшифровке кодировщик Fernet показывает возраст токена и время создания для аудита и проверки срока действия.
  • Надёжный вывод ключа PBKDF2: ваш пароль преобразуется в 32-байтовый ключ, совместимый с Fernet, с помощью PBKDF2 с 480 000 итераций и расширения HKDF. Комбинированный формат вывода ключа и токена упрощает передачу: просто вставьте всю строку.

Типичные сценарии использования кодировщика/декодировщика токенов Fernet

  • Безопасный обмен сообщениями: используйте кодировщик токенов Fernet, чтобы зашифровать сообщения перед отправкой по электронной почте, в чате или соцсетях. Получатель сможет расшифровать токен Fernet с тем же паролем. Сторонние сервисы не нужны.
  • Интеграция для разработчиков Python: разработчики могут использовать этот онлайн-кодировщик Fernet, чтобы быстро создавать токены для тестов или отладки. Результат полностью совместим с модулем cryptography.fernet для Python — писать тестовые скрипты не нужно.
  • Создание токенов для API: создавайте токены Fernet для аутентификации API или управления сессиями. Встроенная метка времени позволяет серверам убедиться в свежести токена, а HMAC гарантирует, что он не был изменён.
  • Хранение секретов конфигурации: шифруйте чувствительные значения конфигурации — ключи API, пароли баз данных или учётные данные сервисов — в токены Fernet. Храните токены в конфигурационных файлах и расшифровывайте их во время работы с помощью мастер-пароля.
  • Переносимость данных между платформами: токены Fernet не зависят от платформы. Зашифруйте данные в браузере нашим кодировщиком Fernet, а затем расшифруйте их в Python, Go, Rust или любом языке с библиотекой, совместимой с Fernet.
  • Шифрование cookie и сессий: шифруйте данные веб-сессий или cookie в токены Fernet. Подпись HMAC предотвращает подмену, а метка времени позволяет задать срок действия сессии. Вся обработка идёт локально в браузере для тестов и прототипов.

Что такое токен Fernet?

Токен Fernet — это формат симметричного шифрования, определённый библиотекой cryptography для Python. Он сочетает шифрование AES-128-CBC с аутентификацией HMAC-SHA256. Каждый токен Fernet содержит байт версии, метку времени Unix, случайный вектор инициализации (IV), шифротекст и подпись HMAC — всё упаковано в строку в кодировке Base64. Формат токена обеспечивает и конфиденциальность, и целостность: шифротекст нельзя прочитать без ключа, а HMAC предотвращает незамеченные изменения. Эта двойная защита делает токены Fernet подходящими для безопасного обмена сообщениями, управления сессиями и шифрования конфигурации.

Как работает наш кодировщик/декодировщик токенов Fernet

  1. Вывод ключа: ваш пароль преобразуется в 32-байтовый ключ Fernet с помощью PBKDF2 с 480 000 итераций SHA-256 и последующим расширением HKDF. Первые 16 байт становятся ключом подписи HMAC, последние 16 байт — ключом шифрования AES.
  2. Шифрование (кодирование): создаётся случайный IV из 16 байт. Открытый текст дополняется по PKCS7, шифруется AES-128-CBC и собирается в формат токена: байт версии (0x80) + 8-байтовая метка времени + IV + шифротекст + HMAC. Весь бинарный токен кодируется в Base64.
  3. Расшифровка (декодирование): токен декодируется из Base64, разбирается на составляющие, HMAC проверяется по ключу подписи и, если он верен, шифротекст расшифровывается AES-128-CBC и очищается от дополнения.

Структура токена Fernet

  • Версия (1 байт): всегда 0x80 (128), что указывает на токен Fernet версии 2. Будущие версии могут использовать другие значения.
  • Метка времени (8 байт): метка времени Unix в формате big-endian, указывающая, когда создан токен. Полезна для проверки срока действия и аудита.
  • IV (16 байт): случайный вектор инициализации для AES-128-CBC. Для каждого шифрования создаётся свой IV, поэтому одинаковые открытые тексты дают разные токены.
  • Шифротекст (переменный): открытый текст, дополненный по PKCS7 и зашифрованный AES-128-CBC с 16-байтовым ключом шифрования, выведенным из вашего пароля.
  • HMAC (32 байта): HMAC SHA-256 по версии, метке времени, IV и шифротексту, вычисленный 16-байтовым ключом подписи. Это предотвращает незамеченные изменения.

Приватность, безопасность и примечания по использованию

Кодировщик/декодировщик токенов Fernet обрабатывает все данные полностью в вашем браузере через Web Crypto API. Никакие данные никогда не загружаются на сервер, не сохраняются в базе данных и не передаются третьим лицам. Криптографические операции — вывод ключа PBKDF2, шифрование и расшифровка AES-128-CBC, подпись и проверка HMAC-SHA256 — используют встроенные криптографические примитивы браузера для максимальной безопасности. Храните пароль в надёжном месте: механизма восстановления пароля нет. Комбинированный формат вывода ключа и токена позволяет передать и ключевой материал, и токен одной строкой.

Часто задаваемые вопросы

Токен Fernet — это формат симметричного шифрования, определённый библиотекой cryptography для Python: он сочетает шифрование AES-128-CBC с аутентификацией HMAC-SHA256. Каждый токен содержит байт версии, метку времени Unix, случайный IV, шифротекст и подпись HMAC — всё упаковано в строку в кодировке Base64, которую можно безопасно передавать или хранить.

Да. Наш кодировщик/декодировщик токенов Fernet полностью совместим с модулем cryptography.fernet для Python. Токены, созданные в браузере, можно расшифровать в Python, а токены, созданные модулем Fernet в Python, можно расшифровать здесь — при условии одинакового ключа или пароля. Учтите, однако, что наш инструмент использует PBKDF2 + HKDF для вывода ключа из пароля, тогда как Fernet в Python обычно использует сырой 32-байтовый ключ.

Ваш пароль преобразуется в 32-байтовый ключ Fernet с помощью PBKDF2 с 480 000 итераций SHA-256 и последующим расширением HKDF. Первые 16 байт становятся ключом подписи HMAC, а последние 16 байт — ключом шифрования AES. Для удобства наш комбинированный формат вывода ставит соль PBKDF2 перед ключом, делая вывод самодостаточным для расшифровки.

Комбинированный формат — это удобная функция: закодированный с солью ключевой материал ставится перед токеном Fernet и отделяется точкой. Можно вставить всю строку целиком, чтобы расшифровать позже: декодировщик извлечёт соль, заново сгенерирует ключ из вашего пароля и расшифрует токен. Либо можно разделить строку по точке и использовать вторую часть как отдельный токен Fernet.

Да, полностью. Все криптографические операции — вывод ключа PBKDF2, шифрование и расшифровка AES-128-CBC, подпись и проверка HMAC-SHA256 — используют Web Crypto API и выполняются целиком в вашем браузере. Ваш пароль и открытый текст никогда не покидают устройство. Никакие данные не загружаются, не сохраняются и не передаются на сервер.

Проверка подписи HMAC-SHA256 не пройдёт, и декодировщик сообщит об ошибке. HMAC вычисляется по байту версии, метке времени, IV и шифротексту, поэтому любое изменение любой части токена приведёт к провалу проверки HMAC. Это исключает незамеченные подмены и гарантирует целостность зашифрованных данных.

Нет. Пароль нужен и для шифрования, и для расшифровки. Спецификация Fernet требует 32-байтовый ключ, и наш инструмент выводит его из вашего пароля с помощью PBKDF2. Пароль — единственный способ зашифровать или расшифровать токены; механизма восстановления пароля нет, поэтому храните его в надёжном месте.

У токенов Fernet фиксированный оверхед 57 байт (версия 1 + метка времени 8 + IV 16 + HMAC 32) до шифротекста. Ваш открытый текст дополняется до ближайшей границы 16 байт и шифруется. Сообщение в 10 байт даёт примерно 92 байта токена в Base64. Практического ограничения по размеру нет, так как вся обработка локальна.

Да, на 100 % бесплатный. Без регистрации, без премиум-тарифа и без ограничений использования. Инструмент работает полностью в вашем браузере через Web Crypto API и всегда будет бесплатным на Aback Tools.