【问题标题】:Node.js cypher and OpenSSL differNode.js 密码和 OpenSSL 不同
【发布时间】:2012-02-13 03:11:58
【问题描述】:

Nodejs 代码

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    

命令行输出:

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

我做错了什么?

PD:是的,我知道这些是二进制输出,但它们显然不匹配。

【问题讨论】:

  • 一方面,您似乎在节点中使用了“pass”键,并将其与直接通过管道传输到没有键的 openssl 进行比较。你确定确实有问题吗?
  • openssl 要求输入该命令的密钥,在这种情况下我输入 pass

标签: node.js encryption openssl aes


【解决方案1】:

您缺少 openssl 的 -nosalt 标志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-06
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多