AEAD шифрование/дешифрование файлов
Шифрование файла паролем: AES-256-GCM или (X)ChaCha20-Poly1305 с Argon2id, и обратная расшифровка. Файлы не покидают браузер.
Введённые данные и файлы остаются в браузере
Шифрование
Большие файлы обрабатываются чанками в браузере.
Чем больше памяти и проходов, тем медленнее подбор пароля, но шифрование и расшифровка дольше и требуют столько же памяти. Параметры сохраняются в файле, при расшифровке они подставляются сами.
Ниже минимума OWASP для Argon2id (19 МиБ × 2 прохода): слабый пароль можно быстро подобрать.
Пароль начинается или заканчивается пробелом. Он используется ровно как введён, вместе с пробелами.
Дешифрование
Выберите файл и пароль, затем зашифруйте или расшифруйте — итоговый файл и его заголовок появятся здесь.
- Результат
- Вывод ключа
- Заголовок
На этой странице
AEAD шифрование/дешифрование файлов защищает файл паролем с помощью аутентифицированного шифрования (AES-256-GCM, ChaCha20-Poly1305 или XChaCha20-Poly1305) и возвращает исходный файл обратно. Всё происходит в браузере: ни файл, ни пароль никуда не загружаются.
Подробное описание функциональности
Пароль растягивается Argon2id (64 МиБ памяти, 3 прохода) со случайной 16-байтной солью в 256-битный ключ, поэтому перебор паролей медленный даже на мощном железе. Затем модуль на Rust/WebAssembly шифрует файл блоками по 1 МиБ; у каждого блока свой nonce (случайный префикс плюс счётчик блока) и 16-байтный тег аутентификации. Полоса прогресса показывает скорость и оставшееся время, Отмена останавливает работу между блоками.
Вывод ключа (Argon2id) задаёт стоимость: лёгкий, стандартный (по умолчанию), усиленный, максимальный (1 ГиБ, для компьютера) или свои память, проходы и потоки. Чем выше стоимость, тем во столько же раз медленнее подбор пароля — и каждое шифрование и расшифровка. Нестандартные параметры записываются в аутентифицируемый заголовок (на 9 байт длиннее), поэтому для расшифровки по-прежнему нужен только пароль; значения ниже минимума OWASP помечаются предупреждением.
Результат — контейнер .aead в формате MDT3: заголовок 35 байт (47 для XChaCha20) с алгоритмом, солью и префиксом nonce, за ним блоки. Заголовок и флаг «последний блок» аутентифицируются вместе с каждым блоком, поэтому неверный пароль, любой изменённый байт, переставленные блоки, обрезанный файл (даже ровно по границе блока) и дописанные в конец данные отклоняются, а не превращаются в испорченный результат. Алгоритм читается из заголовка — для расшифровки нужен только пароль.
Контейнеры, созданные прежними версиями инструмента (MDT2), по-прежнему расшифровываются; этот старый формат не замечает обрезку ровно по границе 1 МиБ, и инструмент сообщает об этом после расшифровки. Пароль используется ровно как введён; для старых файлов дополнительно пробуется пароль без пробелов по краям, потому что прежние версии их обрезали. Зашифрованный или расшифрованный файл собирается в памяти до скачивания, поэтому практический предел размера — объём RAM устройства.
Практические примеры
Шифрование перед загрузкой в облако: report.pdf (2,5 МиБ) с AES-256-GCM превращается в report.pdf.aead — 2,5 МиБ плюс заголовок 35 байт плюс 3 × 16 байт тегов. Поле Заголовок начинается с 4d445433 — это ASCII-байты MDT3.
Расшифровка на другом компьютере: откройте инструмент, выберите report.pdf.aead в панели дешифрования, введите тот же пароль и скачайте report.pdf. Файл без расширения .aead сохраняется с добавленным .dec.
Прерванная передача: если дошли только первые 2 МиБ файла report.pdf.aead, расшифровка остановится с ошибкой «Не удалось расшифровать: неверный пароль либо файл повреждён или изменён» вместо выдачи укороченного PDF.
Пустой файл: из файла в 0 байт получается контейнер 51 байт (заголовок и один аутентифицированный пустой блок), так что даже опустошённый контейнер будет замечен.
Как использовать этот инструмент
Выберите файл для шифрования
В панели Шифрование нажмите Выбрать файл под полем Файл.
Выберите алгоритм и пароль
Выберите Алгоритм (по умолчанию AES-256-GCM) и введите Пароль. Если он начинается или заканчивается пробелом, появится подсказка — пробелы учитываются.
Зашифруйте и скачайте
Нажмите Зашифровать файл, дождитесь окончания прогресса и нажмите Скачать, чтобы сохранить
<имя>.aead.Расшифруйте позже
В панели Дешифрование выберите файл
.aead, введите тот же пароль в поле выше, нажмите Расшифровать файл, затем Скачать.
Советы и лучшие практики
- Восстановления пароля нет: если пароль потерян, файл не расшифрует никто, включая этот инструмент.
- Длинная парольная фраза лучше короткого «сложного» пароля; Argon2id замедляет перебор, но не спасёт
123456. - XChaCha20-Poly1305 использует 128-битный случайный префикс nonce — выбирайте его, если шифруете очень много файлов одним паролем.
- «Неверный пароль» и «файл изменён» намеренно дают одну и ту же ошибку: проверка тега их не различает.
- Зашифруйте старый файл MDT2 заново, чтобы перевести его в MDT3 и получить обнаружение обрезки.
- После первого открытия страница работает и без сети.