[Разработка веб-сайтов, JavaScript, Программирование, .NET] Рабочий прототип секретного мессенджера
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Доброго времени суток, друзья!
Хочу поделиться с вами результатами небольшого эксперимента.
Суть эксперимента заключается в использовании Web Cryptography API для шифрования отправляемых в чате сообщений.
Я исходил из предположения, что по-настоящему приватный чат можно реализовать либо при наличии полного контроля над клиентом, сервером и базой данных, либо при условии отправки на сервер зашифрованных данных.
По разным причинам, я выбрал второй вариант.
Код проекта находится здесь.
Демо можно посмотреть здесь (база данных по понятным причинам отключена).
Чат выглядит так:
Клиент реализован на ванильном JavaScript (для более широкого охвата аудитории), сервер реализован с помощью Express, в качестве базы данных используется облачная MongoDB, для взаимодействия с ней — Mongoose.
Для обмена сообщениями и на клиенте, и на сервере используется Socket.io.
При запуске приложения пользователю предлагается заполнить два поля: имя и секретный ключ. Секретный ключ генерируется (выводится в консоль) при нажатии соответствующей кнопки. Он имеет примерно такой вид: 0A9sJbvjSJOjH5PY. Опционально, данные пользователя можно сохранить в локальном хранилище.
Ключ используется для шифрования и дешифровки сообщений. Зашифрованные сообщения имеют примерно такой вид: GfTbL+JpFEUPnb96OEz7YqOV~C85B2xPf4kk3PYqhw/QFcu7e7l+8klk3XXhFiocdED0=. Пользователи должны использовать одинаковые ключи, в противном случае, выбрасывается DOMException.
Возможности чата:
- Отправка/получение зашифрованных сообщений
- Регистрация подключения/отключения пользователя
- Отображение списка подключенных пользователей
- Регистрация количества подключений
- Возможность удаления сообщений отправившим их пользователем и т.д.
Проект находится на начальном этапе и представляет собой рабочий прототип, а не полноценное приложение.
Дополнительный функционал включает в себя сервис-воркера и настройки безопасности для сервера.
Буду рад любой форме обратной связи.
Благодарю за внимание и хорошего дня.
===========
Источник:
habr.com
===========
Похожие новости:
- [JavaScript, C++, Kotlin, TypeScript] Сага о типизации и тайпчекинге для JavaScript
- [Программирование, Java] Шпаргалка по Spring Boot WebClient (перевод)
- [.NET, C#] Тестирование генератора исходного кода
- [JavaScript, Node.JS] Управление версиями Node.js и NPM с помощью NVM (перевод)
- [Информационная безопасность, Производство и разработка электроники] BlackBerry: расцвет и закат эпохи QWERTY-смартфонов
- [Ненормальное программирование, Разработка веб-сайтов, JavaScript, Программирование] Зачем мы используем addEventListener вместо onclick?
- [JavaScript, API] ExtendScript Работа с файлами
- [JavaScript, API] Extendscript «Hello World!!!»
- [Программирование, DevOps, Kubernetes] Круглый стол «Нужно ли разработчику знать Kubernetes» 11 февраля
- [Бизнес-модели, Производство и разработка электроники, IT-компании] Японская Renesas ведет переговоры о покупке британской Dialog Semi
Теги для поиска: #_razrabotka_vebsajtov (Разработка веб-сайтов), #_javascript, #_programmirovanie (Программирование), #_.net, #_javascript, #_programmirovanie (программирование), #_razrabotka (разработка), #_private, #_messenger, #_secret, #_chat, #_webcryptographyapi, #_socket.io, #_razrabotka_vebsajtov (
Разработка веб-сайтов
), #_javascript, #_programmirovanie (
Программирование
), #_.net
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 08:03
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Доброго времени суток, друзья! Хочу поделиться с вами результатами небольшого эксперимента. Суть эксперимента заключается в использовании Web Cryptography API для шифрования отправляемых в чате сообщений. Я исходил из предположения, что по-настоящему приватный чат можно реализовать либо при наличии полного контроля над клиентом, сервером и базой данных, либо при условии отправки на сервер зашифрованных данных. По разным причинам, я выбрал второй вариант. Код проекта находится здесь. Демо можно посмотреть здесь (база данных по понятным причинам отключена). Чат выглядит так: Клиент реализован на ванильном JavaScript (для более широкого охвата аудитории), сервер реализован с помощью Express, в качестве базы данных используется облачная MongoDB, для взаимодействия с ней — Mongoose. Для обмена сообщениями и на клиенте, и на сервере используется Socket.io. При запуске приложения пользователю предлагается заполнить два поля: имя и секретный ключ. Секретный ключ генерируется (выводится в консоль) при нажатии соответствующей кнопки. Он имеет примерно такой вид: 0A9sJbvjSJOjH5PY. Опционально, данные пользователя можно сохранить в локальном хранилище. Ключ используется для шифрования и дешифровки сообщений. Зашифрованные сообщения имеют примерно такой вид: GfTbL+JpFEUPnb96OEz7YqOV~C85B2xPf4kk3PYqhw/QFcu7e7l+8klk3XXhFiocdED0=. Пользователи должны использовать одинаковые ключи, в противном случае, выбрасывается DOMException. Возможности чата:
Проект находится на начальном этапе и представляет собой рабочий прототип, а не полноценное приложение. Дополнительный функционал включает в себя сервис-воркера и настройки безопасности для сервера. Буду рад любой форме обратной связи. Благодарю за внимание и хорошего дня. =========== Источник: habr.com =========== Похожие новости:
Разработка веб-сайтов ), #_javascript, #_programmirovanie ( Программирование ), #_.net |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 08:03
Часовой пояс: UTC + 5