gpt4 book ai didi

javascript - Node.js 使用 AES 加密大文件

转载 作者:搜寻专家 更新时间:2023-10-31 22:55:55 27 4
gpt4 key购买 nike

我尝试使用以下代码来加密 1 GB 的文件。但是 Node.js 中止并显示“ fatal error :JS 分配失败 - 进程内存不足”。我该如何处理?

var fs = require('fs');
var crypto = require('crypto');
var key = "14189dc35ae35e75ff31d7502e245cd9bc7803838fbfd5c773cdcd79b8a28bbd";
var cipher = crypto.createCipher('aes-256-cbc', key);
var file_cipher = "";
var f = fs.ReadStream("test.txt");
f.on('data', function(d) {
file_cipher = file_cipher + cipher.update(d, 'utf8', 'hex');
});
f.on('end', function() {
file_cipher = file_cipher + cipher.final('hex');
});

最佳答案

您可以将加密文件写回磁盘,而不是将整个文件缓冲在内存中:

var fs = require('fs');
var crypto = require('crypto');

var key = '14189dc35ae35e75ff31d7502e245cd9bc7803838fbfd5c773cdcd79b8a28bbd';
var cipher = crypto.createCipher('aes-256-cbc', key);
var input = fs.createReadStream('test.txt');
var output = fs.createWriteStream('test.txt.enc');

input.pipe(cipher).pipe(output);

output.on('finish', function() {
console.log('Encrypted file written to disk!');
});

关于javascript - Node.js 使用 AES 加密大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27345839/

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