【问题标题】:Case sensitive coldfusion IF statements区分大小写的coldfusion IF 语句
【发布时间】:2012-04-08 22:44:37
【问题描述】:

我现在正在运行一个 Coldfusion 应用程序,其登录名向数据库发送查询,以查找与表单中输入的用户名和密码相同的行。

目前,它完全不区分大小写。但是,我想在密码字段中添加区分大小写的功能,以便用户必须拥有准确的密码。有没有办法在coldfusion中做一个区分大小写的IF语句?

【问题讨论】:

    标签: coldfusion case-sensitive


    【解决方案1】:

    您可以 hash() 两个值并比较哈希值。

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

    此外,您不应将密码按原样以纯文本形式存储在数据库中。

    【讨论】:

    • +1。尽管compare 可能是您正在寻找的功能,但以纯文本形式存储密码是不明智的。最好将散列版本存储在您的数据库表中并使用类似WHERE Password = &lt;cfqueryparam value="#Hash(form.password)#" ..&gt;
    【解决方案2】:

    正如这里提到的: http://www.irt.org/script/3018.htm

    看来你可以使用:

    <cfif Compare(string1,string2) eq "0">...</cfif>
    

    【讨论】:

      【解决方案3】:

      另一种选择:

      如果您的数据库支持区分大小写,请将您的表设置为使用区分大小写的排序规则 - 然后您的用户查找查询将对存储的和提供的用户名/密码进行区分大小写的比较。然后,您不必使用 CF 进行任何查询后字符串比较(运行少 1 个进程 = 好 :)

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

      【讨论】:

      • 是的,或者如果您不想永久更改它,您也可以在每次比较的基础上使用COLLATE
      猜你喜欢
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2014-09-25
      • 1970-01-01
      相关资源
      最近更新 更多