我有一个简单的加密应用程序,我将在其中加密数据库中的“敏感”数据。只有拥有访问权限的人才能看到这些解密后的数据。我一直在寻找有关如何做到这一点的更多信息,这是我的项目方法:
- 我正在使用 AES 加密算法。
- 使用 RNGCryptoServiceProvider 生成 AES 密钥。使用 AES 密钥加密信息。
- 使用 RSA 公钥加密 AES 密钥。
- 将私钥存储在 USB 文件中,我只会将其提供给具有访问权限的人。
- 当合法的人需要看到解密的信息时,他们会提供私钥。该应用程序使用私钥解密 AES 密钥,进而解密信息。
现在,我的问题是如何安全地存储该私钥?根据我一直在阅读的内容,我可以使用 FromXMLString 获取私钥。但是,我在想,如果有人以某种方式获得了 USB 文件和 XMLFile,他可以通过类似地使用 FromXMLString 找到私钥。那么,我怎样才能保护该文件,例如,通过使用密码?c# 中是否有我可以使用的函数?
此外,如果我更改密钥对,我必须更改公钥并使用新的新公钥再次重新加密 AES 密钥。为此,我发现这篇文章如何通过 RSA 生成唯一的公钥和私钥非常有用。但是,我不确定作者是如何实现它的。他是否也将密钥容器名称存储在私钥文件中?还是 ToXMLString 自动执行此操作?
谢谢~