关于如何存储用户密码的Stack Overflow有很多问题,当然一般建议是散列密码和比较散列。当散列不适用时将密码存储在数据库中
但是,想象你正在构建一个人们在自己的环境中部署的shrinkwrap内联网应用程序(如SharePoint)。假设它需要用户名/密码组合才能通过HTTP访问外部服务(不支持依赖于API密钥或联合安全性的解决方案)。
在这种情况下,我们不能散列密码,因为我们需要将原始密码传递给我们所调用的Web服务。加密将是第二好的解决方案,但我们将使用什么加密密钥?如果受到攻击会破坏数据库,那么他们可能会首先访问用于加密数据的任何密钥?
如果您确实需要获取存储密码的纯文本版本,您将如何以最安全的方式处理问题?
应用程序不向用户显示密码;它在调用Web服务时将密码作为基本HTTP凭据发送。用户在将Web服务“添加”到应用程序时输入一次密码。 – 2011-12-30 01:13:54