在相当于此 openssl 命令的 nodejs 中创建一个 base64 md5 哈希

Create a base64 md5 hash in nodejs equivalent to this openssl command

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

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

在终端执行时的结果

_e4Nc3iduzkWRm01TBBNYw

请告诉我如何在没有子进程的nodejs中制作它。

可以在 Node.js 中使用 exec 或 spawn 执行任何终端命令。在这种情况下,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);
});

完成

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