Кодировщик/декодировщик токенов Fernet
Шифруйте сообщения в токены Fernet (AES-128-CBC + HMAC-SHA256) или декодируйте и проверяйте токены Fernet с валидацией метки времени и HMAC. Совместимо с библиотекой cryptography для Python. Вся обработка выполняется локально и приватно в вашем браузере.
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
- Вывод ключа: ваш пароль преобразуется в 32-байтовый ключ Fernet с помощью PBKDF2 с 480 000 итераций SHA-256 и последующим расширением HKDF. Первые 16 байт становятся ключом подписи HMAC, последние 16 байт — ключом шифрования AES.
- Шифрование (кодирование): создаётся случайный IV из 16 байт. Открытый текст дополняется по PKCS7, шифруется AES-128-CBC и собирается в формат токена: байт версии (0x80) + 8-байтовая метка времени + IV + шифротекст + HMAC. Весь бинарный токен кодируется в Base64.
- Расшифровка (декодирование): токен декодируется из 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.