我正在使用ColdFusion创建一个登录表单,但我无法弄清楚在我的表中检查使用SHA256加密的密码的语法.我研究了这个,到目前为止只找到了复杂的答案,大多与我需要的无关.
这是我的查询代码:
<cfquery name="qVerify" datasource="MyDSN">
SELECT *
FROM cryptuser
WHERE firstname = '#firstname#'
AND password = '#password#'
</cfquery>
Run Code Online (Sandbox Code Playgroud)
因此,通过表格输入和发布的密码需要与我表格中加密的密码相匹配,是否有人知道这是否可行?
非常感谢.
要使用SHA-256进行加密,请不要使用encrypt()函数,而是使用hash()函数(SHA是单向散列):
<cfset EncryptedPassword = Hash(form.password, "SHA-256") />
Run Code Online (Sandbox Code Playgroud)
我相信CF将返回一个全大写的哈希,所以请确保你比较数据库中加密的密码的大写:
AND UPPER(password) = <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#EncryptedPassword#" />
Run Code Online (Sandbox Code Playgroud)
还要注意编码!数据库中的数据可能具有与默认值不同的编码(例如,iso-8859-1而不是utf-8).
希望这可以帮助.
归档时间: |
|
查看次数: |
1653 次 |
最近记录: |