密码检索和存储
在我的应用程序中,我必须重复调用需要validation的webservices。 用户不想重复输入validation信息(用户名和密码)。
是否有一种安全的方法来存储密码至少在应用程序运行的会话长度,因此用户只需输入一次数据?
目前,我将密码保存在内存中,并在输入密码并在用于服务调用时将其解密。 但我觉得有点不舒服。 这是处理这类数据的推荐方法吗?
将密码存储在数据库中以便在多个会话中使用它怎么样? 是否有推荐的处理方式? 我听说过bcrypt和pbkdf2。 但它们仅用于散列目的并比较输入的密码,而不是再次使用“解密”密码。
或者它是一种更好的方法来使用外部密码缓存,如keepass(或任何可以使用的)。
对于内存存储,请使用在内部使用SecureString的SecureString类或NetworkCredentials 。
对于持久存储,请使用Data Protection API加密密码。 它将使用只有此计算机上当前Windows用户可访问的密钥对其进行加密。