2012-02-13 68 views
0

代碼的NodeJSNode.js的暗號和OpenSSL不同

var crypto = require("crypto"); 
var cypher = crypto.createCipher("aes192", "pass"); 
var out = cypher.update("TEST1","utf8", "binary"); 
out += cypher.final("binary"); 
console.log(out); 

節點輸出:

´_ËT~R dE{ 

命令行:

echo -n "TEST1" | openssl enc -aes192  

CLI OUTPUT:

Salted__? 
????X-N??R?*a8 P9?t%  

我在做什麼錯了?

PD:是的,我知道那些是二進制輸出,但它們顯然不匹配。

+0

首先,它看起來像是在節點中使用「pass」鍵,並將其與直接通過管道傳輸到openssl而沒有鍵進行比較。你確定有什麼是錯的嗎? – 2012-02-13 03:14:54

+0

openssl要求使用該命令的密鑰,在這種情況下,我輸入密碼 – 2012-02-13 03:17:20

回答

1

您錯過了openssl的-nosalt標誌。