<commit_before># pf2-secrets-app

Пример приложения на языке Парсер 3 и фреймворком PF2. Идея взята из проекта https://github.com/umputun/secrets.

Сайт помогает пользователям передавать секретные сообщения коллегам и друзьям через интернет. Сообщение защищаем пин-кодом и уничтожаем как только получатель откроет ссылку и введет правильный пин-код.

## Принцип работы

Приложение работает на сайте https://secrets.unhandled-exception.ru/

Вводим на сайте секретное сообщение и пин-код. Указываем сколько минут сообщение доступно получателю. Секретную ссылку пересылаем коллеге по почте или через чат. Пин-код расскажем по телефону или пошлем эсэмэской. Коллега откроет сайт по ссылке, введет пин-код и увидит сообщение. Сообщение покажем один раз и сразу сотрем из базы данных.

Не отправляйте ссылку и пин-код в двух письмах по электронной почте или двумя сообщениями в одном и том же чате.

## Безопасность

* Шифруем сообщение пин-кодом перед тем как сохранить в базу данных. Для пин-кода храним хеш из которого невозможно восстановить пин.
* Не сохраняем сообщения и пин-коды в логи веб-сервера.
* Сообщение удалим сразу после просмотра получателем. Спрашиваем сколько минут хранить сообщение и удалим сообщение, когда время прошло и сообщение не прочитали.

## API
<commit_msg>Добавил в README.md ссылку на pf2.<commit_after># pf2-secrets-app

Пример приложения на языке Парсер 3 и [фреймворком PF2](https://github.com/unhandled-exception/pf2). Идея взята из проекта https://github.com/umputun/secrets.

Сайт помогает пользователям передавать секретные сообщения коллегам и друзьям через интернет. Сообщение защищаем пин-кодом и уничтожаем как только получатель откроет ссылку и введет правильный пин-код.

## Принцип работы

Приложение работает на сайте https://secrets.unhandled-exception.ru/

Вводим на сайте секретное сообщение и пин-код. Указываем сколько минут сообщение доступно получателю. Секретную ссылку пересылаем коллеге по почте или через чат. Пин-код расскажем по телефону или пошлем эсэмэской. Коллега откроет сайт по ссылке, введет пин-код и увидит сообщение. Сообщение покажем один раз и сразу сотрем из базы данных.

Не отправляйте ссылку и пин-код в двух письмах по электронной почте или двумя сообщениями в одном и том же чате.

## Безопасность

* Шифруем сообщение пин-кодом перед тем как сохранить в базу данных. Для пин-кода храним хеш из которого невозможно восстановить пин.
* Не сохраняем сообщения и пин-коды в логи веб-сервера.
* Сообщение удалим сразу после просмотра получателем. Спрашиваем сколько минут хранить сообщение и удалим сообщение, когда время прошло и сообщение не прочитали.

## API

{'fraction_non_alphanumeric': 0.0474743638435245, 'fraction_numerical': 0.0030383592859855677, 'mean_word_length': 4.776315789473684, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 5, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1578466', 'n_tokens_mistral': 1126, 'n_tokens_neox': 1317, 'n_words': 339}