Шифрование в браузере. Текст шифруется локально с помощью Web Crypto API
(встроен во все современные браузеры). Алгоритм — AES-256-GCM, стандарт
правительства США для секретных данных. Ключ выводится из PIN через PBKDF2
с 100 000 итераций и случайной солью — это защищает от перебора.
Данные в URL, не на сервере. Зашифрованный текст помещается в
фрагмент URL — часть после символа #. По стандарту HTTP
(RFC 3986) браузеры никогда не отправляют фрагмент на сервер.
Сервер видит только запрос GET / — без данных.
Автоуничтожение. Время жизни встроено в зашифрованный payload.
После истечения срока данные нельзя расшифровать — страница покажет «срок истёк».
URL очищается из адресной строки сразу при открытии (history.replaceState).
Нет базы данных. Нет логов. Нет хранения. Это статичная HTML-страница. На сервере нет ни базы, ни хранилища, ни API — физически некуда сохранять данные. Каждый запрос — просто отдача одного файла.
1. Откройте инструменты разработчика (F12) → вкладка Network
2. Создайте секретное сообщение
3. Вы увидите, что в HTTP-запросе нет фрагмента
#... — только путь4. Скопируйте ссылку и откройте её — снова только
GET / в Network5. Сервер физически не получает данные — он не может их сохранить или перехватить