我正在使用需要用户名和密码才能登录的网络服务。桌面应用程序将使用Web服务。我应该怎么做才能存储密码,以及用户名?通常情况下,您似乎将密码存储在数据库中,但在这种情况下,我用来访问Web服务的库接受纯文本用户名和密码(并且不加密版本),但使用SSL连接到实际的Web服务。
这根本不是我的专业领域,如何在将密码传递给库中的方法之前解密密码?
答案 0 :(得分:0)
您忽略了这是否仅适合您,或者您是否正在将软件分发给其他人。
你担心的威胁是什么?
如果它只适合你:
将其写在一张纸上,并将该纸张放在wallet中。需要时提示输入密码。
密码变量应该是SecureString而不是字符串,因此它不会被实习。
如果您不想将其存储在钱包中,请使用公钥加密密码,并将私钥保存在智能卡中,然后使用智能卡解密密码。
如果您不想使用智能卡,请使用DPAPI。
答案 1 :(得分:0)
我发现在类似情况下对我有用的一件事是使用AES加密用户名和密码,这样凭证就可以在文件中修改,但肉眼无法读取。
为了使它更复杂,你可以使用不同的键和向量来运行它。
我在这里使用了这个人:SO: SimpleAES encryption
当然,如果用户获取密钥和向量并通过他们自己的解密运行它,则可以反转,但至少在这种情况下,您可以将加密的字节数组存储为base64或将其写入文件。