我没有要发布的代码,因为这只是一个普遍的问题.
我目前有一个网站,我有身份验证设置.我有网站的成员,我将他们的凭据存储在数据库中.这完全没问题.常识适用于此,我知道我不应该将用户信息存储为纯文本.然而,当我研究的时候,我看到哈希字符串很容易做到.在整个开发过程中,我发现还有一种方法可以解密这些密码,从而引发了我的这个问题.只是哈希密码吗?我应该和它一起做某种加密吗?什么是最佳做法?我没有在网上找到任何好的信息......
string dec = FormsAuthentication.HashPasswordForStoringInConfigFile(Login1.Password, "SHA1");
提前感谢任何有用的输入.
你会想看看bcrypt
,虽然哈希函数虽然合理安全(只要你加入你的输入!),但随着时间的推移变得越来越弱.
该bcrypt
算法的关键在于难度是可配置的,因此即使计算机变得越来越强大,这种方法也会扩展:
从理论上讲,这并不比标准的Blowfish密钥计划更强,但是密钥更新轮次的数量是可配置的; 因此,这个过程可以任意减慢,这有助于阻止对哈希或盐的暴力攻击.
这里提供了一个用于C#的bcrypt实现.