我用c#加密了一个文件并给它扩展.crypted。文件扩展名.crypted与我的程序相关联。因此,如果我双击该文件,我会从我的程序中获取密码请求对话框。输入正确的密码后,我的程序解密文件并将其未加密地写入磁盘而没有.crypted扩展,以便我可以运行它。使用该文件后,我只删除未加密的文件,如果文件被更改,我使用我的程序首先重新加密文件。但是,您可以轻松使用文件恢复程序来未经授权访问未加密的文件。这就是为什么我不希望在程序解密后将未加密的文件写入磁盘。是否可以打开加密文件而无需将其写入磁盘?就像将未加密的文件保存到ram / memory并从那里打开它一样?我不想为此编写整个文件系统。加密文件应保留在NTFS或ext4上。我想我现在需要更改代码:
using(CryptoStream cryptoStream = new CryptoStream(fileStream, rijndael.CreateDecryptor(), CryptoStreamMode.Read))
{
// write unencrypted file to memory and execute or something else?
}