gpt4 book ai didi

javascript - 使用 Node.js 中的 Crypto 从一个流生成多个哈希值

转载 作者:行者123 更新时间:2023-12-01 02:05:11 29 4
gpt4 key购买 nike

我正在开发 Node.js 应用程序。来自子进程输出的可读流通过管道传输到来自 Crypto 模块的可写流中,以生成 4 个哈希值(md5、sha1、sha256 和 sha512)。该模块一次只允许生成一个哈希值。创建哈希后,该流和哈希值都应该以某种方式进一步传递,以便记录到文件中。我目前正致力于创建第一个哈希值。我怎么解决这个问题?部分代码如下。

import Crypto from 'crypto';
let md5 = Crypto.createHash('md5');
//How to generate another hash using the same input
md5.on('readable', () => {
const data = md5.read();
if (data) {
console.log(md5.read());
}
})
...
childProc.stdout.pipe(md5);

最佳答案

您可以通过管道传输到多个转换流,从单个流创建多个哈希。

import Crypto from 'crypto';
let md5 = Crypto.createHash('md5');
let sha1 = Crypto.createHash('sha1');

md5.on('readable', () => {
const data = md5.read();
if (data) console.log(data.toString('hex'));
})
sha1.on('readable', () => {
const data = sha1.read();
if (data) console.log(data.toString('hex'));
})

childProc.stdin.pipe(md5)
childProc.stdin.pipe(sha1)

此代码会将每个算法的哈希值打印到标准输出。

关于javascript - 使用 Node.js 中的 Crypto 从一个流生成多个哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50161991/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com