Конвертировать PHP hash_hmac(sha512) в NodeJS

Я переношу php-скрипт на узел и мало что знаю о шифровании.

PHP-скрипт использует эту функцию:

hash_hmac('sha512', text, key);

Итак, мне нужно реализовать функцию в Node js для возврата хэша с ключом, используя метод hmac (SHA512).

Из того, что я вижу, Node имеет эту функциональность, встроенную через модуль шифрования (http://nodejs.org/docs/latest/api/crypto.html#crypto_crypto) -- Но я не понимаю, как воспроизвести эту функцию.

Любая помощь будет оценена по достоинству.

Спасибо,


person user1031947    schedule 13.03.2013    source источник


Ответы (1)


Да, используйте криптобиблиотеку.

var hash = crypto.createHmac('sha512', key);
hash.update(text);
var hashed_data = hash.digest();

Более подробная информация (например, аргументы для дайджеста для управления кодировкой вывода из hash.digest) находится по ссылке вы указали.

Как указывает Ник, вам нужно будет выполнять весь этот процесс каждый раз, когда вы хотите зашифровать новую строку (т.е. создать новый объект hash через crypto.createHmac.)

person Jacob Parker    schedule 13.03.2013
comment
Подсказка при использовании этого, я думаю, что вы можете вызвать метод дайджеста () только один раз для хэша. Это означает, что вы не можете использовать update(), а затем дайджест() для формирования другого хэша. Если вам нужно сформировать несколько хэшей, вам придется использовать crypto.createHmac() несколько раз. - person Nick Mitchinson; 13.03.2013
comment
Да, это правильно, насколько я знаю. Спасибо, я обновлю свой ответ. - person Jacob Parker; 13.03.2013