我正在使用 ColdFusion 创建一个登录表单,但我无法找出检查表中使用 SHA256 加密的密码的语法。我对此进行了研究,但到目前为止只找到了复杂的答案,大部分与我的需要无关。
这是我的查询代码:
<cfquery name="qVerify" datasource="MyDSN">
SELECT *
FROM cryptuser
WHERE firstname = '#firstname#'
AND password = '#password#'
</cfquery>
所以通过表单输入和发布的密码需要与我表中加密的密码匹配,有人知道这是否可能吗?
非常感谢。
最佳答案
要使用 SHA-256 加密,您不使用 encrypt() 函数,而是使用 hash() 函数(SHA 是一种单向哈希):
<cfset EncryptedPassword = Hash(form.password, "SHA-256") />
我相信 CF 会返回一个全大写的哈希值,因此请确保您与数据库中加密的密码的大写字母进行比较:
AND UPPER(password) = <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#EncryptedPassword#" />
还要注意编码!数据库中的数据可能使用与默认编码不同的编码(例如,iso-8859-1 而不是 utf-8)。
希望这对您有所帮助。
关于coldfusion - 在 ColdFusion 中,如何将发布的密码与表中的 SHA256 加密密码相匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554608/