我有客户端使用的WCF服务,下面是我当前的用户认证实现,我想要一个建议来增强它或更好的机制。使用RSACryptoServiceProvider类将加密密码插入数据库?
我使用的RSACryptoServiceProvider 类(RSA实现)加密用户密码保存到数据库
客户应加密密码的每个登录使用公共密钥(存储在文件中),并将其发送到测井方法与用户名
在服务器端的登录方法 选择用于 提供的用户名的加密密码和解密的比较密码(由用户和db一个发送)使用私有密钥
注:每次加密使用RSA具有相同的公共 密钥生成新的加密字节产生, 所以我不能比较加密 密码 串,我不得不解密,就比较
PS 回答说:“为了验证的目的,你应该避免使用可逆加密来存储密码”
我在问,除非他有私钥,否则没有人可以解密密码,所以wh在这个问题上,即使哈希是不可逆的,但它已被破坏!
不能足够强烈地推荐这个。永远不要存储任何能够回到用户密码的东西。始终使用散列并比较散列密码,而不是原始密码。 – Andrew 2009-08-22 09:35:12
我以为我可以防止密码破解程序,即使数据库被盗 – 2009-08-22 12:11:00
作为一个攻击者,我更喜欢一个数据库与散列密码数据库与RSA加密密码。即使密码被淹没,攻击者仍然可以执行字典搜索。攻击者不能使用预先计算的表。当数据库使用RSA字典进行正确加密时,攻击是不可能的。 – Accipitridae 2009-08-22 18:56:54