c# - 如何使用 .Net (C#) 在 Windows 中安全地存储 AES key ?

标签 c# windows security encryption

我一直在寻找一种方法来存储给定的 AES key ,以便它不能被检索,但它仍然可以用于加密和解密(使用 C#)。我认为可以找到非对称 key 存储的等效项 here ,但我正在寻找可用于对称加密的东西。它是否以托管形式存在(.Net 4 之前)?

最佳答案

Windows DPAPI ( Win32 documentation ) 及其 .NET 包装器 ( ProtectedData Class ) 不存储任何数据。相反,Windows DPAPI 返回一个加密密码值,您可以将其存储在任何您喜欢的地方,包括在多个服务器上。

在我的工作场所,我们使用 DPAPI 为 AES key 生成密码,然后将其存储在注册表中。

Windows DPAPI 的唯一目的是加密数据,这样只有给定的用户帐户或机器才能解密它,而无需存储密码。

.NET ProtectedData 类自 2.0 以来一直在 .NET Framework 中。

我会坚持使用 Windows DPAPI 而不是第三方产品,因为它成熟、稳定、免费、易于使用并且在 .NET 中得到完全支持。

关于c# - 如何使用 .Net (C#) 在 Windows 中安全地存储 AES key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3826012/

相关文章:

javascript - 如何禁止取景

c++ - 如何使用WinAPI在C++中制作带有标签旋转框的窗口

linux - authorized_keys 中的奇怪公钥

c# - 简单的二维火箭动力学

c# - 在 WPF 应用程序中加载 Interop.WMPLib Windows MediaPlayer 时出错

windows - 使用命令提示符启动已保存的 Python 程序时遇到问题

python - 如何从包含反斜杠字符的文件中执行Python代码

wcf - 何时/为何在 WCF 服务中使用多个端点与单个端点?

C# WinForm 上下拖动点击

c# - 如何使用 linq 使用 hibernate queryover 连接两列