这可能是因为我对此有太多的想法,并且已经过了复杂的事情,并且把自己束缚在了一个结中。我对加密也不太了解,所以没有任何帮助。加密在多个设备上使用的登录密码
我有一个应用程序,它具有使用AES类加密的字段(我在另一个问题中发现此处发现),然后将加密的字符串保存在XML文件中。现在,用于加密每个字符串的密码由用户提供,并在第一次使用该程序时进行设置。这部分工作正常,我可以根据需要完美地加密和解密数据。
我遇到的问题是用于加密这些字符串的密码存储在应用程序中的配置文件中。最初我想我会使用DPAPI来加密这个密码,然后保存在配置文件中,并且一切似乎都按照我想要的那样工作。用户启动了该程序,设置了密码,添加了一些字符串,并且加密的所有内容都很好,并且加密过程很好,并且所有工作都很完美。
的问题是能正常工作的口令创建上,但是当我尝试使用它在另一台计算机上DPAPI抛出一个错误(我假设,因为DPAPI是该机的具体?)
所以基本上在计算机上我需要一种方法来加密用户在首次启动时设置的密码,并将其存储在配置文件中,但无法使用我正在使用的AES类来加密其他数据,因为它需要密码才能加密它!
正如我所说我的AES类可以完美地加密其他数据,但我需要一种方法来保护存储在app.config文件中的密码,而不是使用DPAPI对其进行加密,以便我可以在其他设备上使用它错误。
我希望这是有道理的,我的头疼!
任何帮助非常赞赏
附加信息:
应用程序是一个非常简单的winform应用程序,它允许访问数据时,输入正确的密码和程序存储在USB记忆棒使其能够连接到任何计算机并解密和查看数据。没有用户结构,您只需要正确的密码即可访问应用程序并查看数据。用于访问应用程序的密码是用于加密数据的密码。
重复问题:这个问题是不同的,因为在他们的情况下,DPAPI在我的情况下做他们需要的东西,而不是我已经在我的原始问题中表达过!
你为什么将它存储在配置文件中?你不能将这些敏感信息存储在数据库中吗?此外,如果密码存储在原始用户的配置文件中,您将如何让用户能够从另一台设备登录? –
谢谢Matias。该应用程序是一个非常简单的WinForm应用程序,当输入正确的密码并允许程序存储在USB存储器中时,它可以访问数据,使其可以连接到任何计算机并解密和查看数据。没有用户结构,您只需要正确的密码即可访问应用程序并查看数据。用于访问应用程序的密码是用于加密数据的密码。 – Craig
您可以将密码存储在加密文件中而不是配置文件中。配置文件是纯文本。 –