Использовать Javascript для подтверждения хеша в PHP? - PullRequest
2 голосов
/ 29 марта 2012

Мне нужен способ создания хэша в PHP (crypt () или md5 ()), который можно реплицировать с помощью Javascript.

Т.е..

  1. Создание хэша "hello world" с использованием PHP (с использованием заранее подготовленной частной соли)
  2. Поместите хэш и простой текст в два скрытых поля формы
  3. Форма отправляется через ajax на сервер Node.js
  4. Используйте Javascript, чтобы повторить хеширование в простом тексте (опять же с частной солью) и проверьте, совпадают ли хэши

Есть ли встроенная функция в JS или обычный (надежный) сторонний скрипт, который я могу использовать для достижения этой цели? Я бы предпочел не вызывать PHP с сервера Node.

1 Ответ

1 голос
/ 20 апреля 2013

В браузере вы можете использовать CryptoJS для создания HMAC (кода аутентификации сообщений на основе хеша).Задача будет распространять вашу «заранее подготовленную частную соль».

Вот пример кода из документации CryptoJS:

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/hmac-md5.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/hmac-sha1.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/hmac-sha256.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/hmac-sha512.js"></script>
<script>
    var hash = CryptoJS.HmacMD5("Message", "Secret Passphrase");
    var hash = CryptoJS.HmacSHA1("Message", "Secret Passphrase");
    var hash = CryptoJS.HmacSHA256("Message", "Secret Passphrase");
    var hash = CryptoJS.HmacSHA512("Message", "Secret Passphrase");
</script>

В Node.js используйте Crypto модуль:

require("crypto")
  .createHmac("sha256", "Secret Passphrase")
  .update("Message")
  .digest("base64");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...