我可以将File.Encrypt用于此目的吗?

时间:2013-02-19 15:58:35

标签: c# .net

我有一个应用程序,它的名称和徽标可以直接从同一目录中的TXT和PNG文件更改。

我想让用户能够从执行以下操作的其他应用程序更改徽标和文本文件:

Takes the Logo.png , Name.txt file paths and the directory of my Software then encrypt these two files and put them in the Directory of the Software

另一方面。该软件将解密这两个文件并将它们写入硬盘到临时目录,然后使用它们来显示名称和徽标。

我搜索了加密文件的最简单,最简单的方法,我找到了:

来自MSDN:

File.Encrypt(): Encrypts a file so that only the account used to encrypt the file can decrypt it.

有人可以告诉我这是什么意思“只有用于加密文件的帐户才能解密

如何通过 Application1 Computer1 加密应用程序,然后该文件将由 Computer2 Application2 中解密

加密能否正常工作?



编辑:我需要加密这两个文件的目的是避免用户直接更改徽标和应用程序名称目录

3 个答案:

答案 0 :(得分:4)

这会对文件进行加密,但不会像您期望的那样加密 - 几乎可以肯定,它不会被其他应用程序/用户在另一台计算机上解密。

Encrypt方法基本上只是切换底层NTFS驱动程序的一个功能,以加密文件系统本身上的指定文件。好的功能是它(通常)为用户提供无缝文件加密,但它不是真正的便携式加密。它与打开文件属性,单击高级按钮并选择“加密”复选框相同。

有关NTFS加密功能的更多信息,请访问:http://technet.microsoft.com/en-us/library/bb457116.aspx

advanced file properties

答案 1 :(得分:1)

没有。您应该使用适当的加密方法,例如System.Security.Cryptography命名空间中的加密方法。还有一个名为CryptoStream的流实现,你可以将FileStream包装起来用于加密文件。

答案 2 :(得分:1)

这与Windows的EFS有关。

您可以通过右键单击文件“属性”,“高级”,“加密内容”,从Windows资源管理器中尝试此操作。当您的应用访问文件数据时,文件数据会自动解密/加密。但是,如果另一个用户登录计算机并复制该文件,它将显示为加密,因为加密基于用户令牌。

这可能是也可能不是您想要的,这取决于您对该功能的预期用途。如果您不希望用户能够修改应用程序外的数据,那就不够了。