gpt4 book ai didi

c# - 文件加解密问题

转载 作者:太空狗 更新时间:2023-10-30 01:27:15 25 4
gpt4 key购买 nike

我一直在尝试在 VC# Express 2010 中加密和解密文件。

我见过的所有教程和文档都需要两个 FileStream 来加密文件 - 一个用于读取未加密版本,另一个用于加密。当我实际编写代码时,它一直抛出错误,告诉我它无法打开文件,因为它已被输出文件流中的另一个进程打开。

我假设这是因为文件是由输入文件流打开的。那么这意味着我必须指定一个不同的文件名?所以即使在操作成功后,我现在在目录中也会有原始的未加密文件和一个单独的加密版本?这不是打败了重点吗?或者我在这里做错了什么?我的代码与此类似...

public string filename = "test.xml";
using (FileStream input = new FileStream(filename, FileMode.Open, FileAccess.Read))
using (FileStream output = new FileStram(filename, FileMode.Open, FileAccess.Write))
using (....all the crypto stream and transform stuff...)
{
...do the encryption....
}

最佳答案

你是对的,但这并没有打败重点。 (流式)加密 API 旨在从 Src 加密到 Dst。考虑在通过网络发送/接收时加密输出等。这使它们保持简单,因为它们应该如此。

您通过对 Src 和 Dst 使用相同的文件使问题复杂化。这并非完全不可能,但就像在自身上复制文件一样,它需要格外小心。

考虑到一般情况下,加密会增加文件大小。所以就地加密文件是不安全的。解密可能是,但我不会冒险。

您需要的是一个临时文件和完成后的重命名操作。

关于c# - 文件加解密问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3222345/

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