Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有Javascript或节点js的Crypt.rar文件_Javascript_Node.js_Encryption - Fatal编程技术网

带有Javascript或节点js的Crypt.rar文件

带有Javascript或节点js的Crypt.rar文件,javascript,node.js,encryption,Javascript,Node.js,Encryption,大家好,我试着用Javascript加密(和解密)一个.rar文件,它可以用于文本,但也可以用于文件夹或zip文件(用于重文件) 我的代码如下: const fileger = require("fileger") const file = new fileger.File("./fofo1.rar"); file.encrypt("your-password") // this will encrypt the file .

大家好,我试着用Javascript加密(和解密)一个.rar文件,它可以用于文本,但也可以用于文件夹或zip文件(用于重文件)

我的代码如下:

const fileger = require("fileger")
const file = new fileger.File("./fofo1.rar");

file.encrypt("your-password") // this will encrypt the file
    .then(() => {
        console.log("Encrypt Done")
})

file.decrypt("your-password") // this will decrypt the file   
    .then(()=>{
        console.log("Decrypt Done ")
    })
当我试图解密时,我有一个致命的错误

[12424:000001DD0893F130]15726毫秒:标记扫描2131.6(2165.3)->2131.6(2165.3)MB,598.5/0.0毫秒(平均mu=0.230,当前mu=0.000)分配失败清除可能无法成功 [12424:000001DD0893F130]16485毫秒:标记扫描2131.6(2165.3)->2131.6(2134.3)MB,759.2/0.0毫秒(平均mu=0.140,当前mu=0.000)请求的旧空间中的最后一个GC

==JS堆栈跟踪=========================================

0: ExitFrame [pc: 00007FF6C06FA09D]
安全上下文:0x02ad921408d1 1:加入[000002AD921555F9](此参数=0x03f10bad5b11,0x01a062c00731)
2:stringify[0000031F5275009B1][C:\Users\Mangoz'\Desktop\coode\crytoTest\node\u modules\crypto js\enc-base64.js:71][bytecode=0000017CD859A209 offset=332](此=0x031f5274f651,0x017cd85be0a1看起来您的加密函数正在将整个文件加载到内存中,并且您遇到了“内存不足错误”。尝试分块加密。我已将内存更新为:“node\uuu max\u old\u space\u size=4096”。现在返回“decrypt done”,但当我尝试打开.rar文件时出现错误:“标头已损坏”。有什么问题吗?fileger似乎只能加密(UTF8编码)文本文件。此外,CryptoJS在内部应用,没有文件流,使用内部(不推荐使用且不安全)密钥派生函数。密文是Base64编码的,因此放大了约33%。总之,对于任意二进制或大文件,可能需要应用另一个库,例如NodeJS的加密模块。这允许不同的流策略,例如使用管道,支持各种KDF,并且不限于文本文件。看起来像在你的加密函数将整个文件加载到内存时,你遇到了“内存不足错误”。尝试分块加密。我已经用“node\uuu max\u old\u space\u size=4096”更新了内存。现在返回“decrypt done”,但当我尝试打开.rar文件时出现错误:“头已损坏”。问题是什么?fileger似乎只能加密(UTF8编码)文本文件。此外,CryptoJS在内部应用,没有文件流,使用内部(不推荐使用且不安全)密钥派生函数。密文是Base64编码的,因此放大了约33%。总之,对于任意二进制或大文件,可能需要应用另一个库,例如NodeJS的加密模块。这允许不同的流策略,例如使用管道,支持各种KDF,并且不限于文本文件。