Ruby on rails 3 节点加密和Ruby开放SSL

Ruby on rails 3 节点加密和Ruby开放SSL,ruby-on-rails-3,node.js,openssl,Ruby On Rails 3,Node.js,Openssl,我在一个ruby应用程序上加密数据,在一个节点服务器上解密,但是我得到了一些错误,我在我的节点服务器上复制了ruby代码,注意到这两个库的工作方式不同 # Node crypto var cipher = crypto.createCipher("aes256", key); var key = crypto.createHash("sha512").update("foo", "utf8").digest("hex"); var crypt = cipher.update("bar", "u

我在一个ruby应用程序上加密数据,在一个节点服务器上解密,但是我得到了一些错误,我在我的节点服务器上复制了ruby代码,注意到这两个库的工作方式不同

# Node crypto

var cipher = crypto.createCipher("aes256", key);
var key = crypto.createHash("sha512").update("foo", "utf8").digest("hex");
var crypt = cipher.update("bar", "utf8", "base64");
crypt += cipher.final("base64");
return crypt;

Result: BTK+S8ogCW7cK7NlA5RUJw==

# Ruby OpenSSL
cipher = OpenSSL::Cipher::Cipher.new('aes256').encrypt
cipher.key = Digest::SHA512.hexdigest("foo")
encrypted = cipher.update("bar".to_s)
encrypted += cipher.final
return Base64.encode64(encrypted)

Result: fnRH+EczVbJWwrPSITkhuw==

如何修复此

节点的
crypto.createCipher()
通过OpenSSL的
EVP\u BytesToKey
运行密钥。看