Кто может поделиться простой парой функций хэширования на JS и PHP?
Мне надо проверять одинаковость данных в браузере и в БД на сервере (на PHP), не пересылая их.
Хочу вычислять самый простенький хэш (достаточно буквально 6-10 символов, на коллизии наплевать). Но так и не смог найти работающего решения. Понимаю, что есть CRC32, MD5, которые можно тупо отрезать. Но как-то не хочется вставлять в JS-код эти огромные функции для моих скромных нужд.
Нет ли у кого какой-то готовой поделки (пары функций на JS и PHP) для этих целей, к тому же работающей с кириллицей?
Специально для архитекторов (которые строят) поясняем: чтобы узнать лучшее решение, надо задать осмысленный вопрос. Попробуй сам ответить на вопрос "строю многоэтажку, из какого картона делать перекрытия?"
Если описывать задачу целиком, то надо организовать совместную работу (двух) пользователей над одним "документом". Из БД загружаются данные в браузер и пользователи могут их править. Надо сделать синхронизацию (задержка в 2-3 секунды вполне допустима).
Каждая правка сразу же отправляется на сервер и сохраняется (это давно и хорошо работает в однопользовательском режиме). Но вот тупо каждые 2 секунды подгружать данные с сервера второму пользователю — не годится. Дело в том, что сырые данные с сервера, прежде чем их отобразить пользователю, требуется ресурсоёмко обрабатывать (вычисления + потом 3D-графика). Поэтому, прежде чем решиться на загрузку и обработку обновлённых данных, я хочу проверять, а обновились ли они?
Не вижу объективных причин не использовать быстрые хеш функции по типу md5.
Если вопрос хранения в БД, то озвученные 6-10 символов (CHAR), уже близки к тому что md5-хеш можно хранить в BINARY(16) что будет занимать всего 16 байт на хеш.
Спасибо, друзья, за уделённое время. Сделал на md5, от которого беру первые 10 символов, и хорошо. С crc32 не получилось добиться одинакового результат на JS и PHP. Ну и чёрт с ним. Получилось "микроскопом гвозди заколачивать", ну ладно уж.