我对 C# 比较陌生,并且正在尝试使用 Visual Studio 表单将我在 wxMaxima 中设计的文本加密算法改编为 C# 中的二进制加密程序。因为我是读取/写入二进制文件的新手,所以我对尝试读取或写入文件流时会发生什么缺乏了解。
例如,不是像我过去那样加密文本文件,而是说我想加密可执行文件或任何其他形式的二进制文件。
这里有几个我不明白的问题:
当我打开文件流并使用 binaryreader 时,它会读取文件中绝对所有内容的绝对副本吗?例如,我希望能够读取整个文件,删除原始文件,然后使用旧名称创建一个新文件并将整个二进制流写回。这会准确地复制原始文件还是会存在某种必须以其他方式解决的损坏?
因为它是一个加密程序,所以我希望添加一个功能,在删除原始文件之前对其进行低级“格式化”,这样理论上就无法通过组合硬盘的物理数据来访问它。如果我使用 binarywriter 用乱码覆盖原始文件的部分内容,它将被放在硬盘上的同一位置,还是文件会变得碎片化,实际上只是通过 FAT 重定向到硬盘的其他部分?显然,如果它没有覆盖硬盘上的原始集群,那么用乱码覆盖原始文件是没有意义的。