gpt4 book ai didi

c# - 在应用程序中存储密码

转载 作者:行者123 更新时间:2023-11-30 22:31:21 26 4
gpt4 key购买 nike

很多威胁都在谈论如何加密密码、对称和非对称加密等......

我有一个简单的问题。如果我要求用户每次希望连接到 sqlite 数据库时都输入密码,那么一切正常。

现在的问题是我想将密码存储在应用程序中,这样用户就不必在每次希望连接到 sqlite 数据库时都输入密码。

我知道我可以加密密码并将加密的密码存储在任何地方。但这意味着我需要存储第二个密码才能在其他地方解密该密码。

我可以继续重复这个过程并加密第二个密码,但我将再次得到一个未加密的密码,我需要解密该密码。

所以我的问题是......我应该在哪里存储我需要解密其他密码的最终密码?在哪里放置密码最安全?


如果你不明白最后一部分,这里是我试图在最后一部分解释的例子:

假设:

打开数据库的密码是:1234

然后我将使用 key someKey 加密该密码,假设给出 abcd

如果我然后用 key someKey 解密 abcd 我应该得到 1234

我可以用 key someKey 再次加密 abcd 我可能会得到 xy#8

最后,如果我能够通过使用 key someKey 解密 xy#8 获得 1234 密码,那么我将获得 abcd 然后我将使用相同的 key someKey 对其进行解密以获得 1234


所以不管我重复这个过程多少次,我总是会在应用程序的某个地方得到一些未加密的 key someKey。我不需要存储该 key 的唯一方法是,如果我要求用户每次希望连接到数据库时都提供密码。

将应用程序中的字符串 someKey 存储在尽可能隐藏的最安全位置?

最佳答案

您应该使用 ProtectedData 类来加密密码。
这将使 Windows 为您存储 key 。

如果您指定每用户加密并且用户有登录密码,Windows 将使用登录密码创建其加密 key 。

有关更多信息,请阅读 DPAPI .

关于c# - 在应用程序中存储密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9286398/

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