gpt4 book ai didi

javascript - 无法使用 crypto.createDecipheriv() 正确解密文件。文件大小为 0 字节

转载 作者:行者123 更新时间:2023-12-03 00:06:56 25 4
gpt4 key购买 nike

我正在尝试使用流加密/解密文件。我不知道如何正确地做到这一点。解密后的文件大小为0字节

我找不到任何有关如何加密/解密流的正确信息。我发现的所有模块和文章都使用非常过时的方法(它们使用已弃用的方法),并且主要展示如何加密/解密字符串而不是文件

更新

  • 显然我只在某些系统目录中获得 0 字节文件(例如 /DesktopC:/ 等)。我该如何解决这个问题?我将从 Electron 应用程序中运行此代码。

  • 此外,我运行的这段代码安全吗?我做错了什么吗?

代码:

const crypto = require('crypto')
const fs = require('fs')

const path = 'C:/testImage'
const algorithm = 'aes-256-cbc'
const keyLength = 32
const password = '1234'
const salt = crypto.randomBytes(32)
const iv = crypto.randomBytes(16)
const key = crypto.scryptSync(password, salt, keyLength)


function encrypt() {
const cipher = crypto.createCipheriv(algorithm, key, iv)
const input = fs.createReadStream(path + '.png')
const output = fs.createWriteStream(path + '.enc')
input.pipe(cipher).pipe(output)

cipher.on('end', () => {
console.log('encrypted');
decrypt()
})
}


function decrypt() {
const decipher = crypto.createDecipheriv(algorithm, key, iv)
const input = fs.createReadStream(path + '.enc')
const output = fs.createWriteStream(path + '_dec.png')
input.pipe(decipher).pipe(output)

decipher.on('end', () => {
console.log('decrypted');
})
}


encrypt()

最佳答案

我尝试了你的脚本,它有效。 (https://ibb.co/4Jvv6v1)

您是否尝试在 Windows 上以管理员身份执行脚本?

如果您使用 GitBash 或 PowerShell,请以管理员身份运行,然后:

node your-script.js

关于javascript - 无法使用 crypto.createDecipheriv() 正确解密文件。文件大小为 0 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54926090/

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