在 Node js 中加速 AES 解密
Speeding up AES decryption in Node js
我想创建一个网页,用于显示之前在服务器上解密的数据。在 app.js 的服务器上,读取一个文件夹中的所有数据,然后解密。
var http = require('http');
var path = require('path');
var express = require('express');
var fs = require('fs');
var app = express();
var CryptoJS = require("crypto-js");
app.set('view engine', 'ejs');
var bytes = [];
var markers = fs.readdirSync("views/images");
for (var i = 0; i < markers.length ; ++i) {
bytes[i] = fs.readFileSync("views/images/" +
markers[i]).toString('utf8');
};
然后数据被解密并发送到页面
app.get('/index', function(req, res) {
app.use(express.static(__dirname + '/views'));
try{
for (var i = 0; i < markers.length ; ++i) {
bytes[i] = CryptoJS.AES.decrypt(markers[i],Rf3hgf93).toString(CryptoJS.enc.Utf8);
};
res.render('index',{bytes:bytes});
}catch (err){
res.render('index',{bytes:''});
console.log("error");
};
});
问题是,解密所有这些文件并发送给客户端大约需要 30 秒。大约有 35 个解密的 txt 文件(每个大约 5mb)。我知道nodejs是单线程的,没有并发。那么,我怎样才能加快解密过程呢?我应该使用 Java/Python 而不是 node js,就我而言 java 是最适合这个过程的语言,因为多线程和并发。
我想创建一个网页,用于显示之前在服务器上解密的数据。在 app.js 的服务器上,读取一个文件夹中的所有数据,然后解密。
var http = require('http');
var path = require('path');
var express = require('express');
var fs = require('fs');
var app = express();
var CryptoJS = require("crypto-js");
app.set('view engine', 'ejs');
var bytes = [];
var markers = fs.readdirSync("views/images");
for (var i = 0; i < markers.length ; ++i) {
bytes[i] = fs.readFileSync("views/images/" +
markers[i]).toString('utf8');
};
然后数据被解密并发送到页面
app.get('/index', function(req, res) {
app.use(express.static(__dirname + '/views'));
try{
for (var i = 0; i < markers.length ; ++i) {
bytes[i] = CryptoJS.AES.decrypt(markers[i],Rf3hgf93).toString(CryptoJS.enc.Utf8);
};
res.render('index',{bytes:bytes});
}catch (err){
res.render('index',{bytes:''});
console.log("error");
};
});
问题是,解密所有这些文件并发送给客户端大约需要 30 秒。大约有 35 个解密的 txt 文件(每个大约 5mb)。我知道nodejs是单线程的,没有并发。那么,我怎样才能加快解密过程呢?我应该使用 Java/Python 而不是 node js,就我而言 java 是最适合这个过程的语言,因为多线程和并发。