Показать сообщение отдельно
  #24 (permalink)  
Старый 09.06.2012, 08:05
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 22.09.2010
Сообщений: 217

Поясню сразу, чего я хочу. Я работаю над IM-системой, и решил прикрутить к ней шифрование на стороне клиента. Таким образом, данные будут зашифрованы не только в БД, но и передаваться по сети будут в шифрованном виде. Я отыскал этот алгоритм, он мне понравился. Авторы пишут, что он очень надёжный. Это очень простой алгоритм шифрования, усиленный MD5 подписями. В самом деле, там присутствует функция MD5 на JS и MD5-хэш ключа передаётся одним из аргументов основной шифрующей функции.

Я взял JS код. Алгоритм пока такой (возможно, буду улучшать): на клиента подгружаются для каждой шифрованной комнаты кодированные ключом сэмплы заранее известного отрывка текста (его можно увидеть через просмотр JS кода). Вообще это не очень хорошо, но так работает быстрее. Когда у пользователя просят ввести ключ, скрипт кодирует этот сэмпл и сверяет с шифрованным сэмплом комнаты. Если совпадает, тогда подгружаются зашифрованные сообщения с сервера и раскодируются "на лету". Ну и запись идёт аналогично: сначала шифруем, потом уже отправляем на сервер.

И всё бы хорошо...

Но я захотел сделать функцию смены ключа. А для этого надо расшифровать, а затем снова зашифровать все сообщения комнаты, но уже с новым ключом. И я рассудил, что лучше это сделать на сервере... Вот и мучаюсь теперь, пытаясь этот алгоритм на PHP портировать.

Переносил аккуратно, но видимо где-то навалял. Или какие-то тонкости языка всё портят...
Ответить с цитированием