Encryption 如何在.NetCore中加密/解密文件?

Encryption 如何在.NetCore中加密/解密文件?,encryption,.net-core,encryption-symmetric,Encryption,.net Core,Encryption Symmetric,我想使用.NetCore库对磁盘中的文件进行加密/解密 我看到的示例是基于帐户的,因此只有用于加密文件的帐户才能对其进行解密。 我需要能够密码加密我的文件。 是否有一个.Net库(标准.NetCore库或第三方库的一部分)?internet上有很多用于加密/解密的资源,只需简单的搜索,您就可以找到它们 加密: 公共静态字符串加密字符串(字符串文本、字符串键字符串) { var key=Encoding.UTF8.GetBytes(keyString); 使用(var aesAlg=Aes.Cr

我想使用.NetCore库对磁盘中的文件进行加密/解密

我看到的示例是基于帐户的,因此只有用于加密文件的帐户才能对其进行解密。

我需要能够密码加密我的文件。
是否有一个.Net库(标准.NetCore库或第三方库的一部分)?

internet上有很多用于加密/解密的资源,只需简单的搜索,您就可以找到它们

加密:

公共静态字符串加密字符串(字符串文本、字符串键字符串)
{
var key=Encoding.UTF8.GetBytes(keyString);
使用(var aesAlg=Aes.Create())
{
使用(var encryptor=aesAlg.CreateEncryptor(密钥,aesAlg.IV))
{
使用(var msEncrypt=new MemoryStream())
{
使用(var csEncrypt=newcryptostream(msEncrypt,encryptor,CryptoStreamMode.Write))
使用(var swEncrypt=newstreamwriter(csEncrypt))
{
书写(文本);
}
var iv=aesAlg.iv;
var decryptedContent=msEncrypt.ToArray();
var result=新字节[iv.Length+decryptedContent.Length];
块拷贝(iv,0,结果,0,iv.Length);
BlockCopy(decryptedContent,0,result,iv.Length,decryptedContent.Length);
返回Convert.tobase64字符串(结果);
}
}
}
}
解密:

公共静态字符串解密字符串(字符串密文、字符串键串)
{
var fullCipher=Convert.FromBase64String(密文);
var iv=新字节[16];
var cipher=新字节[16];
Buffer.BlockCopy(fullCipher,0,iv,0,iv.Length);
Buffer.BlockCopy(fullCipher,iv.Length,cipher,0,iv.Length);
var key=Encoding.UTF8.GetBytes(keyString);
使用(var aesAlg=Aes.Create())
{
使用(var decryptor=aesAlg.CreateDecryptor(key,iv))
{
字符串结果;
使用(var msDecrypt=新内存流(密码))
{
使用(var csDecrypt=new CryptoStream(msDecrypt,decryptor,CryptoStreamMode.Read))
{
使用(var srDecrypt=newstreamreader(csDecrypt))
{
结果=srDecrypt.ReadToEnd();
}
}
}
返回结果;
}
}
}


@ArtjomB-我不确定我想走哪条路。谢谢你提供的链接,让我开始学习。Q:为了扩展这一点,假设我有一个Sqlite DB想要加密。我假设方法是从磁盘读取DB文件,应用加密,然后保存文件。要解密我从磁盘读取的文件,解密它,然后在打开它之前将其写为已解密?
*.exe也是磁盘上的一个文件,您可以打开
exe
文件并将其作为字符串读取以加密它吗?