【发布时间】:2010-10-13 18:57:38
【问题描述】:
如何在 C# 中使用密码保护文件和目录?
【问题讨论】:
-
@Vinoth:我编辑了你的帖子,所以它看起来更像是一个具有正确英语语法的问题,所以它不会被关闭。如果您不喜欢我的更改,请回滚。
如何在 C# 中使用密码保护文件和目录?
【问题讨论】:
如果您需要保护文件和文件夹,您有多种选择:
使用 ACL(访问控制列表)控制操作系统级别的权限,以便只有计算机上的授权用户才能访问这些对象。这不会为文件创建新密码,而只会拒绝每个未经授权的用户的访问。缺点是这需要在机器(或 Active Directory 域)级别上完成。因此,如果您将文件复制到另一台机器,则保护不再有效。
您可以使用压缩算法(如 zip 或 rar)来压缩受保护的文件并指定解压缩所需的密码。即使您将 zip 文件复制到其他机器,这也有效。如果您只需要保护文件而不关心减小文件大小,则可以不使用压缩因子打包文件。您可以在线找到几个用于 .NET 的开源 zip 库。其中之一是http://www.icsharpcode.net/OpenSource/SharpZipLib/
或者您可以使用 System.Security.Cryptography 中的类执行文件加密,使用对称算法,其中密码密钥将是您的密码,或使用证书的非对称加密,其中密码将是私钥的密码证书。这通常比 zip 加密提供更强的安全性,但您必须编写更多代码并管理用户的证书。
您的具体安全和授权要求是什么?
【讨论】:
看看C# Encryption examples。您可以将其中之一与 this Recursive Directory Search example(死链接)结合使用,以加密目录(及其子目录,如果需要)中的所有文件。
【讨论】:
您可以创建一个文件,在其上创建一个加密文件系统,然后环回挂载它。
【讨论】: