Моя страничка на GitHub Pages
Пример простой реализации технологии Блокчейн на нескольких ЯП
Блокчейн — непрерывная последовательная цепочка блоков (связный список), содержащих информацию. Связь между блоками обеспечивается не только нумерацией, но и тем, что каждый блок содержит свою собственную хэш-сумму и хэш-сумму предыдущего блока.
Таким образом если изменить данные какого-либо блока в цепочке то хэш-суммы последующих блоков перестанут быть валидными, что позволяет не допустить подмену данных в цепочке. Конечно же злоумышленник может перестроить все блоки в цепочке заново, для того чтобы этого не допустить, существуют децентрализованные базы данных в которых можно хранить копию нашей цепочки блоков и при необходимости сверять их.
Но в данном примере я рассмотрю только построение цепочки блоков и ее верификацию, а так же предусмотрю функцию сравнения двух цепочек.
ПодробнееШифрованный Анонимный Веб-Чат
Для демонстрации работы шифрования Виженера и протокола обмена ключами Диффи-Хеллмана решил написать простенький веб-чатик с сервером на сокете.
Чат решено было сделать как можно более анонимным, для этого я отказался от бэкенда и решил в качестве сервера использовать сокет.
Демка чата тут: http://185.98.86.127/encryptionWebChat/
Чат не использует куки или сессии, при обновлении страницы или ее закрытии происходит логаут.
Сообщения в чате шифруются, с помощью шифрования Виженера, но системные команды, например команда перехода в комнату - не шифруются.
Сервер не участвует в процессе шифрования, алгоритм шифрования полностью реализован на стороне клиента (в браузере), сервер видит только зашифрованный текст, а протокол Диффи-Хеллмана не позволяет серверу его расшифровать.
Серверный скрипт не записывает ни куда ни какие данные, данные в нем находятся непосредственно в переменных, и при разрыве соединения уничтожаются.
При этом из данных на сервере хранятся только хэши коннектов и список комнат.
Имя пользователя для чата генерится рандомно, его можно сменить в дальнейшем на такое-же рандомное, для авторизации в чате достаточно только имени и названия комнаты.
ПодробнееПример работы протокола Диффи — Хеллмана на нескольких ЯП
Протокол Диффи-Хеллмана — это криптографический протокол, позволяющий двум и более сторонам получить общий секретный ключ, используя незащищенный от прослушивания канал связи. Полученный ключ используется для шифрования дальнейшего обмена с помощью алгоритмов симметричного шифрования.
Работу данного алгоритма продемонстрирую на примере сокетов.
Последовательность действий алгоритма довольно проста, поэтому не буду тут приводить пример на алгоритмическом языке, а просто опишу эту последовательность в виде списка.
ПодробнееПример шифрования Виженера на нескольких ЯП
Шифрование по Виженеру представляет собой сложение блока открытого текста с ключом по модулю мощности алфавита.
Когда-то давно у меня возникла необходимость передавать зашифрованную строку текста между сервером и клиентом.
На просторах интернета я нашел простой пример шифрования Виженера написанный на Delphi неким программистом под ником "Danger".
В связи с тем что на клиенте и сервере в моем случае была разная среда и использовались разные ЯП, пришлось переписать эту функцию...
И вот уже сейчас я представляю Вам эту функцию переведенную на несколько ЯП.
Подробнее