【问题标题】:Coldfusion Hash with SHA-1 vs Php sha1Coldfusion Hash with SHA-1 vs Php sha1
【发布时间】:2016-03-25 21:27:26
【问题描述】:

我尝试在 Coldfusion 10 和 php 中使用 sha-1 加密某些字符串。

冷熔代码:

<cfsavecontent variable="Mydata">
abcdefghijklmn
</cfsavecontent>
<cfset data = Hash(Mydata,"sha-1") >
<cfdump var="#data#" abort="true"/>

Coldfusion 输出: 113D1951E36C83FE1F60BF3BC520CEF65E0373BE

PHP 代码:

$content_digest = sha1('abcdefghijklmn');
var_dump($content_digest);
exit();

PHP 输出: 85d7c5ff403abe72df5b8a2708821ee33cd0bcce

两个代码没有产生相同的输出。

我已经尝试了 SHA-1 的在线工具http://www.freeformatter.com/sha1-generator.html#ad-output

网站输出:85d7c5ff403abe72df5b8a2708821ee33cd0bcce

该站点和 php 代码产生相同的输出。

谁能解释一下我的cf代码出了什么问题?谢谢。

【问题讨论】:

  • CF 是否可以在输入中包含空格/换行符?
  • 是的,你是对的。
  • @SimonSvensson - 好地方。

标签: hash coldfusion-10 railo cfml


【解决方案1】:

&lt;cfsavecontent&gt; 引入了一些额外的空格。

所以就用

<cfset data = Hash('abcdefghijklmn',"sha-1")>

自己运行:http://trycf.com/gist/21e6b5b1ee87f858b913/acf

【讨论】:

    【解决方案2】:
    <cfsavecontent variable="Mydata">
    abcdefghijklmn
    </cfsavecontent>
    
    <cfset data = Hash(trim(Mydata),"sha-1") >
    <cfdump var="#data#" abort="true"/>
    

    使用 trim() 函数我得到了正确的输出。

    输出:85D7C5FF403ABE72DF5B8A2708821EE33CD0BCCE

    【讨论】:

    • 是的,使用散列,任何差异都很重要,包括大小写和空格。旁注,由于 php 代码生成小写,您可能还想lcase 生成的字符串以精确匹配大小写。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多