存储Web服务的密码



我正在使用一个需要用户名和密码才能登录的web服务。该web服务将由桌面应用程序使用。我应该如何存储密码,以及用户名?通常情况下,您似乎会将密码与salt一起存储在数据库中,但在这种情况下,我用于访问web服务的库接受纯文本的用户名和密码(而不是加密版本),但使用与实际web服务的SSL连接。

这根本不是我的专业领域,在将密码传递给库中的方法之前,我应该如何解密密码?

您忽略了提及这是仅针对您还是将软件分发给他人。

你担心的威胁是什么?

如果它只是为你:

把它写在一张纸上,放在钱包里。需要时提示输入密码。

密码变量应该是SecureString,而不是字符串,这样它就不会被插入。

如果您不想将其存储在钱包中,请使用公钥加密密码,并将私钥保存在智能卡中,然后使用智能卡解密密码。

如果您不想使用智能卡,请使用DPAPI。

在类似的情况下,我发现有一件事对我来说很有效,那就是使用AES加密用户名和密码,这样凭据可以在文件中修改,但肉眼无法读取。

为了使其更加复杂,您可以使用不同的关键点和向量通过多次过程来运行它。

我在这里用了这个家伙:所以:SimpleAES加密

当然,如果用户掌握了密钥和矢量并通过自己的解密来运行它,则可以颠倒这种情况,但至少在这种情况下,您可以将加密的字节数组存储为base64或将其写入文件。

最新更新