这是我的问题。在PHP中,有两个函数在ColdFusion中难以复制。ColdFusion相当于PHP解压和SHA1
1)PHP的解压功能,让您格式化以一定的方式输出。其中一种格式选项是'H',代表“Hex字符串,首先是高半字节” - 我如何在ColdFusion中复制它?
这是我迄今为止...
<cfscript>
function stringToBinary(String stringValue){
var base64Value = toBase64(stringValue);
var binaryValue = toBinary(base64Value);
return(binaryValue);
}
function stringToHex(String stringValue){
var binaryValue = stringToBinary(stringValue);
var hexValue = binaryEncode(binaryValue, "hex");
return(lcase(hexValue));
}
</cfscript>
所以我想不出来指定在上述(实现高字节也是,我没有写此ColdFusion这是奔礼貌纳德尔)。
其次,在PHP中有一个用于散列的SHA1函数...该函数有一个参数,它是一个布尔参数“如果可选raw_output设置为TRUE,则sha1摘要返回原始二进制格式长度为20,否则返回值为40个字符的十六进制数字。“所以我的Coldfusion模仿这只是简单地使用Hash()函数并指定它使用“SHA-1”,然后将其转换为二进制文件......但是如何正确地将它限制为“20”,方式与PHP完全相同呢?
我知道这是参与由我已经难倒了一段时间,现在就这两个问题...任何帮助是非常赞赏。
这是伟大的信息!我非常欣赏这个回应。实际上我有一件事要澄清,我没有在我原来的帖子中说过......解包格式实际上是“H *”而不是“H” - 任何想法? –
(编辑)我不是一个PHP的人,但[包文档](http://php.net/manual/en/function.pack.php)说*意味着“...重复输入的结尾数据”。听起来像是将它应用到整个输入字符串,而不仅仅是它的一部分。这就是二进制编码/解码无论如何默认做的。再说一次,听起来你不得不做任何事情。除非您有一个具体的PHP代码示例,其行为与CF不同。 – Leigh
@BradMash - 关于[你的(现在删除的)线程](http://stackoverflow.com/questions/37468449/weird-cfloop-file-behavior),很高兴你找到了解决方案,但请记住S.O.线程被存档以使所有人受益:)与其删除线程,不如将解决方案作为答案发布,以便其他人也可以从中受益。 – Leigh