1

伙计们,我需要将一些字符串数据从 MVC Core 2.0 应用程序加密到 SQL 数据库中。我正在考虑将数据保护 API 与 PersistKeysToFileSystem 一起使用,以便我可以将数据恢复到另一台服务器并使用相同的密钥文件解密数据。Net core 中 DPAPI 的性能给我留下了深刻的印象,我不想为任何自定义加密解决方案而选择,因为它太冒险了。我会将批量上传的数据存储到 SQL 中。加密前的字符串为 200 个字符或更少。

我相信 DPAPI 被认为更适合加密小块数据,例如密码,而不是 sql 批量操作。人们是否认为使用 DPAPI 将数据加密到数据库中是一个很好的用例?

4

1 回答 1

2

数据保护 API 不一定只适用于小块数据,而是适用于相对瞬态的数据。换句话说,它并不是真的打算用于长期加密/解密。密钥将在某个时候循环,虽然旧密钥被保留以允许转换到新密钥,但您不应该真正依赖它。

根据文档

ASP.NET Core 数据保护 API 并非主要用于机密有效负载的无限期持久性。其他技术如 Windows CNG DPAPI 和 Azure Rights Management 更适合无限存储的场景,并具有相应强大的密钥管理能力。

不过,它确实继续说,如果你愿意,你可以这样做。但是,如果您可能使用已撤销的密钥,则必须以不同的方式处理事情。上面的文档链接详细介绍了这方面的所有细节。但是,请记住,您本质上是以不太安全的方式对数据进行操作,因为您明确允许使用已撤销的密钥来解密数据。

于 2018-08-28T15:27:11.333 回答