如何使用node.js加密字符串?

时间:2011-09-23 14:31:15

标签: encryption node.js

我需要一个与以下Ruby代码等效的node.js:

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

我在node.js中尝试了以下内容,但Ruby签名与node的

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

1 个答案:

答案 0 :(得分:1)

你走在正确的轨道上。您需要使用crypto#createHmac方法而不是createHash,并在创建它时将其秘密(密钥)传递给它。这将为您提供所需的信息:

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

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

signature = hmac.digest("hex");