我在ASP.NET Core 3.1框架的顶部有一个用C#
编写的项目。
在存储某些数据之前,我需要对其进行加密。当读取相同的数据时,我想对其解密。我找到了一种使用IDataProtectionProvider
的方法。但是,加密密钥似乎存储在本地计算机上。
如何控制密钥存放在哪里?另外,有没有办法控制密钥应该是什么?
答案 0 :(得分:1)
“使用IDataProtectionProvider的组件必须将唯一用途的参数传递给CreateProtector方法。”
看起来像这样。 (source)
_protectorTest = provider.CreateProtector("TestProtector");
假设您以正确的方式使用IDataProtectionProvider,则目的字符串在您的控制之下。您将其放入您的项目中。
对于简单的情况,您可以将此字符串保留在自己的项目中,因此目的字符串可随时使用。当然,这不是您理想中想要的。
对于更现实的情况,您可以考虑使用以下任何选项来正确存储和检索目的密钥。