采取哪条路线,哪些优点和缺点,哪个更安全..
1)生成AES密钥,用它加密数据,然后用RSA加密AES密钥,将加密数据和加密的AES密钥保存到文件,并将RSA密钥保存到KeyContainer.
2)或者使用DPAPI ProtectedData类加密数据并将其保存到文件中,然后将我使用的熵存储ProtectedData.Protect()到某个地方......(也可以用RSA加密它,将RSA密钥对存储到KeyContainer和加密的熵到带有数据的文件?)
编辑:只是为了更多信息:我们需要保护我们的应用程序文件系统使用.因此,应用程序存储到我们希望对其进行加密的文件系统的任何文件.该文件很可能由同一应用程序或同一应用程序堆栈的另一个组件使用.
为了防止有人轻易抓取我的数据,我将来自我服务的数据缓存为加密文件(基本上是复制保护).
但是,为了做到这一点,我必须将加密密钥存储在.NET程序集中,以便能够加密和解密这些文件.
知道像Red Gate的.NET Reflector这样的工具可以直接拉出我的钥匙,我觉得这不是一种非常安全的方式......有没有最好的做法呢?