当前位置: 首页 > 知识库问答 >
问题:

使用AES加密任何文件

卞浩漫
2023-03-14

我正在使用这样的代码来加密文件。

            FileStream fsInput = new FileStream(ifile_path,
              FileMode.Open,
              FileAccess.Read);

            FileStream fsEncrypted = new FileStream(ofile_path,
               FileMode.Create,
               FileAccess.Write);
            AesCryptoServiceProvider AES = new AesCryptoServiceProvider();
            AES.Mode = CipherMode.CBC;
            AES.KeySize = 256;
            iv = AES.IV;
            AES.Key = key;
            ICryptoTransform aesencrypt = AES.CreateEncryptor();
            CryptoStream cryptostream = new CryptoStream(fsEncrypted,
               aesencrypt,
               CryptoStreamMode.Write);

            byte[] bytearrayinput = new byte[fsInput.Length];
            fsInput.Read(bytearrayinput, 0, bytearrayinput.Length);
            cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length);
            cryptostream.Close();
            fsInput.Close();
            fsEncrypted.Close();

但是,尽管此代码成功加密。txt和。xml文件,它不适用于其他文件类型,例如。docx或图像文件格式。我可以对代码进行哪些更改以将功能扩展到所有此类文件类型?

共有1个答案

钦英发
2023-03-14

您希望使用BinaryReader和BinaryWriter进行文件I/O。普通StreamReader将尝试使用特定编码读取字节,因为它实现了TextReader,并将损坏基本数据类型。这就是纯文本的原因。txt和。xml工作时。docx文件没有。

 类似资料:
  • 我正在尝试构建一个程序,该程序接收一个文件(任意大小的EXE),对其进行加密并将其复制到一个结构中。然后稍后对其进行解密,并确保其与使用时相同。 我有一个艰难的时间加密,然后解密文件。它似乎没有正确加密,我不知道如何测试它。 以下是我的问题: 我在这里做错了什么? 是否有更好的库使用AES加密?或者我应该坚持openSSL 让我们说我想用另一个键说“你好世界”。我能不能用这个字符串作为加密算法的参

  • 问题内容: 我尝试使用以下代码来加密1 GB的文件。但是Node.js中止,并显示“致命错误:JS分配失败-进程内存不足”。我该如何处理? 问题答案: 您可以将加密的文件写回到磁盘,而不是将整个内容缓存在内存中:

  • 问题内容: 我需要知道如何创建AES并使用它来加密和解密Java中的文件。 问题答案: 尝试使用并传入。有关快速示例,请参见http://www.java2s.com/Tutorial/Java/0490__Security/UsingCipherOutputStream.htm,而仅使用它。

  • null 我很困惑,我应该选择哪种方法?我不知道这两种方法的利弊。

  • 问题内容: 因此,我正在为自己开发一个个人项目,并且正在尝试加密手机上的文件。这些文件可以是任何文件,例如文档,照片等。现在,我正在尝试使其正常运行。每当我运行加密时,它似乎都可以正常工作并加密文件。当我运行解密时,有时它可以工作,而其他时候则不起作用。当它失败时,我通常会收到“在确定密码时出错,填充块已损坏”错误。我也没有使用不同的测试文件,所以它不像某些文件可以工作,而其他文件则不能。我每次都

  • 问题内容: 我正在写某种生成加密日志文件的记录器。不幸的是,密码学不是我的强项。现在,我可以向文件写入几条消息,然后关闭文件。然后我可以打开它,附加一些消息,再次关闭,解密后,我在文件中间看到填充字节。有什么方法可以处理加密文件,而不必每次我想添加一些消息时都对其解密? 编辑 :更多细节。当前实现使用CipherOutputStream。据我了解,没有办法 寻求 使用它。如果我将控制输出数据大小可