Генерируйте несколько значений хеша из одного потока с помощью Crypto в Node.js - PullRequest
0 голосов
/ 03 мая 2018

Я работаю над приложением 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);

1 Ответ

0 голосов
/ 03 мая 2018

Вы можете создать несколько хешей из одного потока, передавая несколько потоков преобразования.

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)

Этот код напечатает хеш для каждого алгоритма в стандартный вывод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...