Utilia

Шифрування тексту з паролем

Шифруйте й розшифровуйте текст парольною фразою у браузері: AES-256-GCM і PBKDF2 із 600 000 ітерацій. Нічого не надсилається на сервер. Чесні обмеження.

Використовуйте довгу парольну фразу, наприклад із п’яти й більше випадкових слів. Забуту парольну фразу ніхто не зможе відновити, а зашифрований текст надійний рівно настільки, наскільки вона.

Як зашифрувати й розшифрувати текст

  1. Введіть або вставте повідомлення в перше поле чи натисніть Відкрити файл .txt.
  2. Введіть Парольну фразу й ту саму ще раз у Підтвердьте парольну фразу (для шифрування). Позначте Показати парольні фрази, щоб перевірити введене. Рядок надійності дає приблизне уявлення про те, наскільки важко підібрати парольну фразу.
  3. Натисніть Зашифрувати. Обчислення ключа навмисно триває близько секунди (див. нижче). Результат – це блок тексту, що починається з BEGIN ENCRYPTED TEXT. Скористайтеся Копіювати, щоб вставити його в лист, чат чи нотатку, або Завантажити .txt, щоб зберегти його як файл.
  4. Щоб прочитати його назад, вставте весь блок (або відкрийте файл .txt) у перше поле, введіть парольну фразу й натисніть Розшифрувати. Поле підтвердження для розшифрування не потрібне.

Якщо парольна фраза неправильна або навіть один символ блоку змінено, ви отримаєте зрозумілу помилку замість перекрученого тексту.

Що відбувається з вашим текстом

Усе виконується у вашому браузері за допомогою вбудованого Web Crypto API. Текст і парольна фраза ніколи нікуди не надсилаються. Інструмент використовує стандартні, добре перевірені будівельні блоки:

  • Виведення ключа: PBKDF2 з HMAC-SHA-256 і 600 000 ітерацій – налаштування, яке рекомендує OWASP Password Storage Cheat Sheet для PBKDF2-HMAC-SHA256. Для кожного шифрування генерується нова випадкова сіль завдовжки 16 байтів, тому та сама парольна фраза щоразу дає інший ключ, а заздалегідь обчислені таблиці марні. 600 000 циклів роблять кожну спробу підібрати парольну фразу повільною для зловмисника й є причиною, чому шифрування займає мить.
  • Шифрування: AES-256 у режимі GCM (NIST SP 800-38D) зі свіжим випадковим вектором ініціалізації (IV) завдовжки 12 байтів. GCM – це автентифіковане шифрування: 16-байтовий тег виявляє будь-яку зміну. Невеликий заголовок (версія формату, кількість ітерацій, сіль і IV) також автентифікується.
  • Вивід: Base64 із заголовком. Блок указує версію формату, тож майбутні версії цього інструмента зможуть читати сьогоднішні повідомлення. Дворазове шифрування того самого тексту дає два різні блоки, і це очікувано.

Чесні обмеження

Цей інструмент призначений для побутової приватності: надіслати другові пароль від Wi-Fi, зберегти особисту нотатку нечитабельною для сторонніх очей або поділитися коротким секретом каналом, якому ви не до кінця довіряєте, передавши парольну фразу іншим способом (особисто чи по телефону).

  • Парольна фраза – це все. Слабка ланка – не сам AES-256, а парольна фраза, яку легко вгадати. Коротку чи поширену можна зламати офлайн, попри 600 000 ітерацій, будь-кому, хто має зашифрований блок. Використовуйте п’ять і більше випадкових слів або довгий випадковий пароль із генератора. Оцінка надійності – лише підказка: вона не здатна розпізнати, що «Summer2024!» – поширений шаблон.
  • Відновлення немає. Немає чорного ходу, скидання чи копії вашої парольної фрази. Забудете її – і текст втрачено назавжди.
  • Ваш пристрій має бути надійним. Зловмисне ПЗ, розширення браузера чи хтось, хто дивиться через плече, можуть прочитати текст до шифрування.
  • Метадані не приховано. Довжина блоку приблизно відповідає довжині повідомлення.
  • Не заміна усталеним інструментам. Для файлів, резервних копій, довготривалих архівів чи всього чутливого (юридичні, медичні, комерційні таємниці) використовуйте перевірені інструменти, створені для цього: age, GnuPG (OpenPGP) або наскрізне шифрування месенджера на кшталт Signal.

Поширені запитання

Чи надійне це шифрування?

Алгоритми – ті самі, що використовують банки й уряди, застосовані рекомендованим способом (випадкова сіль і IV, автентифіковане шифрування). На практиці безпека дорівнює надійності вашої парольної фрази та пристрою, яким ви користуєтеся.

Чому моя парольна фраза «неправильна», хоча я впевнений, що вона правильна?

Парольні фрази чутливі до регістру, і пробіли враховуються. Перевірте Caps Lock і розкладку клавіатури (українська чи англійська) та переконайтеся, що весь блок скопійовано, від BEGIN до END. Обрізаний чи змінений блок за задумом дає ту саму помилку, що й неправильна парольна фраза.

Чи можете ви розшифрувати мій текст, якщо я втрачу парольну фразу?

Ні. Ніхто не може: парольна фраза ніде не зберігається, а перебір усіх варіантів – саме те, що задум робить непрактичним.

Чи можна розшифрувати блок іншою програмою?

Формат задокументовано на сторінці, і він використовує стандартні примітиви: 1 байт версії, 4-байтова кількість ітерацій, 16-байтова сіль, 12-байтовий IV, потім шифротекст AES-GCM і його 16-байтовий тег, усе в Base64; 33-байтовий заголовок передається як додаткові автентифіковані дані. Розробник може розшифрувати його кількома рядками коду з OpenSSL, пакетом cryptography для Python чи Web Crypto.

Чи краще це за шифр Цезаря або ROT13?

Це зовсім інше: вони лише маскують літери й ламаються за секунди. AES-GCM із надійною парольною фразою – сучасна криптографія, яку не зламати перебором зсувів чи аналізом частот літер.