2015-04-26 3 views
0

Мне нужен общий метод хеширования как в php, так и в javascript, что-то вроде MD5 или, если не MD5, то что-то использовать соль, но сгенерировать тот же результат из php и javascript.MD5 с солью в PHP и JavaScript

Что я хотел сделать, у меня есть ряд вопросов, которые я попрошу у пользователей и пользователей, чтобы они отвечали на них, но чтобы сделать это быстро и избежать задержки, чтобы проверить ответы пользователей с сервера, я также хочу загрузить ответы на вопросы и сопоставление их в javascript, поскольку пользователи отвечают на них. Теперь мне нужно, чтобы ответы были решены с php-сервера, и когда я сопоставляю их с ответами пользователей, я бы ответил на запрос пользователя и сопоставил его с хэшированным ответом с сервера.

Возможно ли это?

+1

Конечно, это возможно. Что-нибудь еще? –

+0

@ArtjomB. спасибо, ты знаешь как? – Sohail

ответ

0

Это немного больше, чем обфускация, что вы делаете. Предположительно, вы хотите, чтобы пользователи не обманывали. Выполнение этого и использование кода на стороне клиента не будут работать надежно.

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

Поскольку это не что иное, как обфускация, почему это осложняется? Просто закодируйте правильные ответы на Base 64 или что-то в этом роде. Это позволит большинству пользователей обмануть. Если вы действительно хотите убедиться, что ни один пользователь не может обмануть, вам нужно отправить выбранные ответы на сервер.


Если вы действительно хотите, чтобы идти вперед с вашим планом, самый быстрый MD5 мясорубка для JavaScript прямо сейчас SparkMD5, не то, что вам нужна скорость для вашего использования. CryptoJS также реализует MD5, а PHP имеет функцию md5(). Все эти реализации совместимы. Вам просто нужно убедиться, что вы используете ту же кодировку (кодировка символов и Hex/Base64).

Конструкция с солью может быть md5(answer || salt) где || обозначает конкатенацию. Это не реально, но в любом случае это не имеет значения.

+0

Спасибо, ты прав. он не полностью безопасен, но я не хочу делать это слишком очевидным для них. и потому, что у этих вопросов будет ограничение по времени, поэтому у них не хватает времени, чтобы вырыть эту глубину. – Sohail

Смежные вопросы