Хорошие ресурсы для многопоточного шифрования в Node.js? - PullRequest
0 голосов
/ 28 июня 2018

Я пишу некоторый код шифрования, который будет шифровать, расшифровывать, подписывать и проверять информацию. Я хочу сделать так, чтобы каждая из функций выполнялась в отдельном потоке. Я пытался найти ответ на этот вопрос в Интернете, но я не могу найти информационную статью о многопоточности, которая отвечает на мой вопрос. Есть ли какие-нибудь статьи, которые могут четко объяснить многопоточность для моего случая?

Мой код:

const cluster = require('cluster'); const numCPUs = require('os').cpus().length; let events = require('events'); const crypto = require('crypto'); const readline = require('readline'); const sign = crypto.createSign('SHA256'); const NodeRSA = require('node-rsa'); const { MessageChannel } = require('worker_threads'); const {Worker, isMainThread, parentPort, workerData} = require('worker_threads');     let eventEmitter = new events.EventEmitter(); let key = new NodeRSA({}); key.generateKeyPair(2048); console.log(key.isPublic(true));


function signing(message) {
    return key.sign(message, 'base64'); }

function verification(signature, message) {
    return key.verify(message, signature,"ascii","base64"); }


/*let rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout   });
     rl.question('What do you think of Node.js? ', (answer) => {
    // TODO: Log the answer in a database
    console.log(`Thank you for your valuable feedback: ${answer}`);

    rl.close();   });*/ // for reading user input later let message1 = "Hi, this is just the first test"; console.log(message1); let temp = "random";

let listener1 = function() {
    console.log('listener1 executed.');
    temp = key.encrypt(message1, "base64");
    console.log(temp); }

let listener2 = function() {
    console.log('listener2 executed.');
    temp = key.decrypt(temp, "ascii");
    console.log(temp);

}

let listener3 = function() {
    console.log('listener3 executed.');
    temp = signing(temp,"base64");
    console.log(temp); }

let listener4 = function() {
    console.log('listener4 executed.');
    console.log(temp);
    temp = verification(temp, message1);
    console.log(temp); }

eventEmitter.addListener('encrypt', listener1);

eventEmitter.on('decrypt', listener2); eventEmitter.on('sign', listener3); eventEmitter.on('validate', listener4); let eventListeners
= require('events').EventEmitter.listenerCount(eventEmitter, 'decrypt'); console.log(eventListeners + " Listner(s) listening to decrypt event");

// Fire the connection event  eventEmitter.emit('encrypt');

// Fire the connection event  eventEmitter.emit('decrypt');

eventListeners = require('events').EventEmitter.listenerCount(eventEmitter, 'decrypt'); console.log(eventListeners + " Listener(s) listening to encrypt event");

eventEmitter.emit("sign"); eventListeners = require('events').EventEmitter.listenerCount(eventEmitter, 'sign'); console.log(eventListeners + " Listener(s) listening to signing event");

eventEmitter.emit("validate"); eventListeners = require('events').EventEmitter.listenerCount(eventEmitter, 'validate'); console.log(eventListeners + " Listener(s) listening to validation event");


console.log("Program Ended.");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...