在我的应用程序中,我将密码发送到数据库,假设我的密码是PassworD123。 现在这给了我正确的价值,但是当我使用password123时,也给了我正确的值。那么如何在SQL服务器中查看区分大小写的数据。 任何演示代码都会有帮助。 感谢。
答案 0 :(得分:5)
为什么不使用加密技术将密码存储在数据库中,例如md5,因为它们会返回不同的散列版本,例如
密码123的Md5 = 482c811da5d5b4bc6d497ffa98491e38
PassworD123的Md5 = bbac8ba35cdef1b1e6c40f82ff8002ea
当你比较它们时,它们显然是不同的。
我认为你正在使用ASP因此我不知道它是否内置了md5()函数,但php确实拥有它。您应该知道的另一件事是,如果您将密码存储在数据库中,最好使用某种无法逆转的加密来存储它们
答案 1 :(得分:2)
但是我认为你存储/比较密码的方法有点不对劲。您不应将密码直接存储在数据库中。至少MD5它或什么。
答案 2 :(得分:2)
嗯,简短的回答是使用区分大小写的排序规则 - 更长的答案是don't store plaintext passwords in your database!
答案 3 :(得分:2)
您可以在T-SQL语句中使用COLLATE子句。
实施例
SELECT * FROM dbo.TableName WHERE Password = @ password COLLATE SQL_Latin1_General_CP1_CS_AS