2012-04-07 66 views
0

我有一个正在运行的coldfusion应用程序,它有一个登录向数据库发送一个查询,寻找一行使用与输入表单相同的用户名和密码。区分大小写的coldfusion IF语句

确实,它是完全不区分大小写的。但是,我想在密码字段中添加区分大小写,以便用户必须具有确切的密码。有没有办法在Coldfusion中执行区分大小写的IF语句?

回答

7

您可以散列()两个值并比较散列值。

<cfif Hash(DBPassword) EQ Hash(SubmittedPassword)> 
     <!--- Login Code ---> 
</cfif> 

此外,您不应该将密码作为纯文本存储在数据库中。

+3

+1。虽然'比较'可能是你正在寻找的功能,但以纯文本存储密码是不明智的。最好在你的数据库表中存储哈希版本,并使用像'WHERE Password = ' – Leigh 2012-04-07 18:06:15

3

另一种选择:

如果你的数据库支持区分大小写,设置你的表来使用的情况下,敏感的整理 - 然后您的用户查询查询将对存储的和提供的用户名/密码进行区分大小写的比较。您将不需要使用CF然后执行任何查询后字符串比较(减少1个运行流程=良好:)

+1 Leigh关于以纯文本形式存储密码的警告。

+0

是的,或者如果你不想永久改变它,您也可以按比较使用[COLLATE](http://dev.mysql.com/doc/refman/5.0/en/charset-collat​​e.html)。 – Leigh 2012-04-08 21:19:08