gpt4 book ai didi

c# - c#中的数据加密和 key 管理

转载 作者:可可西里 更新时间:2023-11-01 07:47:28 27 4
gpt4 key购买 nike

走哪条路,有什么优缺点,哪个更安全..

1) 生成AES key ,用它加密数据,然后用RSA加密AES key ,将加密后的数据和加密的AES key 保存到一个文件中,并将RSA key 对保存到一个KeyContainer中。

2) 或者使用 DPAPI ProtectedData 类来加密数据并将其保存到文件中,然后将我在 ProtectedData.Protect() 中使用的熵存储到某个地方..(也许也加密它使用 RSA,将 RSA key 对存储到 KeyContainer 并将加密的熵存储到包含数据的文件中?)

编辑:仅供了解更多信息:我们需要保护我们的应用程序文件系统使用。因此,应用程序存储到文件系统的任何文件我们都希望对其进行加密。该文件很可能由同一应用程序或同一应用程序堆栈的另一个组件使用。

最佳答案

如果您正在寻找一种加密方案来保护本地应用程序数据,那么您对 ​​API 的选择取决于您是否需要在运行同一应用程序的不同服务器之间共享加密数据。

如果只有一台服务器需要访问数据,那么 DPAPI 应该足以满足您的需求。安全性由用户的凭据提供,在此上下文中将是运行您的应用程序堆栈的凭据。您可以提供额外的熵(或“盐”)硬编码到您的应用程序中以提高安全性,这样它就不会单独依赖最终用户凭据。它易于实现,您无需处理导出/导入 key 。

如果多个服务器需要访问相同的文件/数据,那么 RSA key 容器方法更好。同一个 key 可以导出到多个服务器,它们可以共享相同的加密文件。还可以备份 key 以用于恢复目的。 DPAPI 没有这样的选项。

一种方法的安全性并不比另一种好,因为它们使用类似的方案,并且两个 key 最终都受到用户凭据的保护。 DPAPI 使用凭据来保护它使用的内部 RSA key ,Windows 也将通过使用凭据来控制对 RSA key 容器的访问。

关于c# - c#中的数据加密和 key 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com