Как зашифровать строку с помощью node.js?

Мне нужен эквивалент node.js следующего кода Ruby:

    require 'openssl'
    digest = OpenSSL::Digest::Digest.new('sha1')
    signature = OpenSSL::HMAC.hexdigest(digest, 'auth secret', 'some string')

Я попробовал следующее в node.js, но подпись Ruby отличается от подписи узла.

    var crypto, signature;
    crypto = require('crypto');
    signature = crypto.createHash("sha1").update('auth secret').update('some string').digest("hex");

person rafidude    schedule 23.09.2011    source источник
comment
Проверьте этот вопрос: stackoverflow.com/questions/4497135/ узел-js-и-крипто-библиотека   -  person Chance    schedule 23.09.2011


Ответы (1)


Вы на правильном пути. Вам нужно использовать метод crypto#createHmac вместо createHash и передать ему свой секрет (ключ) при его создании. Это даст вам то, что вы ищете:

var crypto = require('crypto')
  , hmac
  , signature;

hmac = crypto.createHmac("sha1", 'auth secret');
hmac.update('some string');

signature = hmac.digest("hex");
person Evan Owen    schedule 23.09.2011