vb.net file.encrypt不支持的解决方法

vb.net file.encrypt不支持的解决方法,vb.net,encryption,Vb.net,Encryption,其他线程已经覆盖了该文件。W7HE不支持vb上的加密。但是,我找不到一个简单的解决方法,我知道的唯一其他加密功能是使用: Imports system.security.Cryptography 然后按照 Dim rsa As New RSACryptoServiceProvider Dim encoder As New UTF8Encoding 等等等等 但是,这只会加密字符串,我需要对整个文件进行加密。 如果您有任何想法,我们将不胜感激。file.encrypt使用EFS,它实际上是透明

其他线程已经覆盖了该文件。W7HE不支持vb上的加密。但是,我找不到一个简单的解决方法,我知道的唯一其他加密功能是使用:

Imports system.security.Cryptography
然后按照

Dim rsa As New RSACryptoServiceProvider
Dim encoder As New UTF8Encoding
等等等等

但是,这只会加密字符串,我需要对整个文件进行加密。
如果您有任何想法,我们将不胜感激。

file.encrypt使用EFS,它实际上是透明加密;用户帐户存储主证书,因此使用该帐户登录的任何人都可以访问任何应用程序中的文件内容。取决于你需要什么,那可能根本不是你想要的。如果您想单独为应用程序复制EFS行为,只需在用户的私人文件中的某个位置存储主密码,将数据文件拆分为“密钥”和“数据”部分,并使用主密码加密密钥即可。(真正的EFS有一些微妙之处:它可以为许多不同的用户分别加密密码,因此它允许不同的用户访问每个文件,在主用户密码丢失时提供恢复选项。它还使用用户密码加密主密码,因此如果有人更改密码,他们将无法打开文件。)

基本方法只是提示用户输入密码,并使用该密码一次加密或解密整个文件,而不是一次加密或解密一个字符串。以不加密的方式序列化文件,然后将整个字节数组传递给类似的对象。如果您正在写入字节而不是字符串,唯一的区别是:

using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
    {
        swEncrypt.Write(plainText);
    }


无论哪种方式,对于实际加密,您将使用
AesCryptoServiceProvider
,而不是
RSACryptoServiceProvider
,它用于对传递给AES和类似算法的密钥/密码进行顶级身份验证和加密。它很少用于加密整个文件,而且加密时速度非常慢。

将文件作为一个整体读取并存储为字符串,然后传递到加密函数并另存为加密产品,还是作为加密产品使用?
csEncrypt.Write(plainText);