将隐藏的信息附加到 c# 中的 txt 文件

本文关键字:中的 txt 文件 隐藏 信息 | 更新日期: 2023-09-27 18:37:15

我正在构建一个简单的加密应用程序,它能够加密和解密任何给定txt文件中的文本。解密过程应确定对文本使用了哪种加密类型,并使用该类型解密指定的 txt 文件文本。我的问题是,有没有办法将隐藏的信息附加到 txt 文件中,我将能够在解密过程中读取该文件。编辑:我所说的隐藏是指用户将无法以任何方式看到它。它也不应该反映加密文本。

将隐藏的信息附加到 c# 中的 txt 文件

有没有办法将隐藏的信息附加到 txt 文件中,我将能够在解密过程中读取该文件。编辑:我所说的隐藏是指用户将无法以任何方式看到它

不,这是不可能的。根据定义,文本文件是表示某些文本编码的简单字节流。用户可以访问所有字节,由他们用来查看文件的任何程序解码(可以像十六进制转储实用程序一样简单)。

也就是说,某些文本编码(包括 Unicode)包括本身不显示的字符,但通常用于影响呈现、文本布局、字符组成等。根据您的特定目标,我想您可以将这些字符战略性地嵌入到文件的文本中,以便您的算法可以检测到它们并可以解释为恢复文件中的信息。

但是,如果您的程序可以获取数据,那么其他人也可以。例如,任何设计为显示通常不显示的字符的程序都将显示数据。同样,一个只显示文件字节的程序。在这种情况下,用户可能会很好地注意到无关字符数据,并确定文件包含除文本之外的数据,而文本通常是传统文本查看工具加载文件时唯一可见的内容。

我想值得指出的是,某些文件系统(包括NTFS)支持一个文件的多个数据流。在此类环境中,您可以将非文本数据放在备用流中。传统工具不会显示这些数据。但是 a) 备用流对任何知道查找它的用户仍然可见,并且 b) 当某些文件的数据移动到其他地方(例如通过网络复制)时,此类流实际上永远不会保留。这是一个非常脆弱的解决方案,很容易导致加密文件完全无法恢复。

它也不应该反映加密文本。

我不知道你在这里是什么意思。"反思"如何?