其他线程已覆盖该文件.W7HE不支持vb上的.encrypt。但是我无法找到一个简单的解决方法,而且我知道加密的唯一其他功能是使用:
Imports system.security.Cryptography
然后沿着
行Dim rsa As New RSACryptoServiceProvider
Dim encoder As New UTF8Encoding
等,等
然而,只有字符串,我需要整体加密文件。 任何想法将不胜感激
答案 0 :(得分:0)
file.encrypt使用EFS,实际上是透明加密;用户帐户存储主证书,因此在该帐户下登录的任何人都可以访问任何应用程序中的文件内容。根据您的需要,这可能根本不是您想要的。如果您只想为应用程序复制EFS行为,就像在用户私有文件中的某处存储主密码一样简单,将数据文件拆分为“密钥”和“数据”部分,并使用主密码加密密钥。 (真正的EFS有一些细微之处:它可以为许多不同的用户单独加密密码,因此它允许不同的用户访问每个文件,在主用户的密码丢失的情况下提供恢复选项。它还使用用户的密码加密主密码,所以如果有人更改密码,他们将无法打开文件。)
基本方法只是提示用户输入密码,并使用它来一次加密或解密整个文件,而不是一次加密或解密。然后序列化你的文件然后你将不加密,然后将整个字节数组传递给类似于EncryptStringToBytes_Aes的东西。如果您正在编写字节而不是字符串,那么唯一的区别正在改变:
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
swEncrypt.Write(plainText);
}
到
csEncrypt.Write(plainText);
无论哪种方式,对于实际加密,您使用AesCryptoServiceProvider
,而不是RSACryptoServiceProvider
,这是用于传递给AES和类似算法的密钥/密码的顶级身份验证和加密。它很少用于加密整个文件,并且在你这样做时非常慢。