如何使用node.jsencryptionstring?

我需要一个相当于以下Ruby代码的node.js:

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"); 

你在正确的轨道上。 您需要使用crypto#createHmac方法而不是createHash,并在创build时将密钥(密钥)传递给它。 这会给你你想要的:

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