在与此openssl命令等效的nodejs中创建base64 md5哈希

时间:2015-05-18 17:06:46

标签: node.js openssl

我有一个linux命令来创建参数值,但我不知道如何在nodejs中转换它。这是linux命令行:

echo -n '2147483647/s/link127.0.0.1 secret' | \
openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d =

和在终端

中执行时的结果
_e4Nc3iduzkWRm01TBBNYw

请告诉我如何在没有子进程的情况下在nodejs中创建它。

2 个答案:

答案 0 :(得分:0)

可以使用exec或spawn在Node.js中执行任何终端命令。在这种情况下,exec可能是你最好的选择。按照下面的模式,只需替换我的命令,用你想要的任何命令列出/ home / username中的目录:

var exec = require('child_process').exec;

exec("ls /home/username", function (error, stdout, stderr) {
    console.log("error: ", error);
    console.log("stdout: ", stdout);
    console.log("stderr: ", stderr);
});

答案 1 :(得分:0)

完成

 var mysecretkey = "secret";
    var path = "/s/link";
    var ip = '127.0.0.1';
    var time = '2147483647';
    var path = time + path + ip + ' ' + mysecretkey;
    var crypto = require('crypto');
    var md5sum = crypto.createHash('md5');
    var d = md5sum.update(path).digest('base64');
    //#echo -n '2147483647/s/link127.0.0.1 secret' | openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d =
    var test = d.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
    console.log(test);