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