密码检索和存储

本文关键字:存储 检索 密码 | 更新日期: 2023-09-27 18:05:52

在我的应用程序中,我必须重复调用需要身份验证的web服务。用户不希望重复输入认证信息(用户名和密码)。

是否有一种安全的方法来存储密码,至少在应用程序正在运行的会话长度,所以用户只需要输入一次数据?

目前,我将密码保存在内存中,并在输入后对其加密,并在用于服务调用时对其解密。但是我觉得有点不舒服。这是处理这类数据的推荐方法吗?

如何在数据库中存储密码以在多个会话中使用它?有什么建议的处理方法吗?我听说过bcrypt和pbkdf2。但它们只是用于散列目的和比较输入的密码,而不是再次使用"解密"的密码。

或者使用外部密码缓存是更好的方法,比如keepass(或任何可以使用的方法)。

密码检索和存储

对于内存存储,使用SecureString类或NetworkCredentials,后者在内部使用SecureString。

对于持久存储,使用Data Protection API加密密码。它将使用只有本计算机上的当前windows用户才能访问的密钥对其进行加密。