Hash 如何在c中的CFMX_COMPAT中进行哈希#

Hash 如何在c中的CFMX_COMPAT中进行哈希#,hash,coldfusion,cryptography,Hash,Coldfusion,Cryptography,现有的coldfusion网站将被转换为.net 在coldfusion代码中,使用其hash()函数对密码进行哈希运算,但不使用任何算法: SomePassword = '#hash(fldPassword)#' 我发现,默认加密是 CFMX_COMPAT:生成与生成的哈希字符串相同的哈希字符串 ColdFusion MX和ColdFusion MX 6.1(默认) 实际上有一些文章告诉我如何解密 根据Macromedia,ColdFusion加密函数使用 基于XOR的算法,利用基于 用户作

现有的coldfusion网站将被转换为.net

在coldfusion代码中,使用其hash()函数对密码进行哈希运算,但不使用任何算法:

SomePassword = '#hash(fldPassword)#'
我发现,默认加密是

CFMX_COMPAT:生成与生成的哈希字符串相同的哈希字符串 ColdFusion MX和ColdFusion MX 6.1(默认)

实际上有一些文章告诉我如何解密

根据Macromedia,ColdFusion加密函数使用 基于XOR的算法,利用基于 用户作为参数传递给函数的种子。这个 结果数据被uu编码

您需要首先对编码值进行UU解码

然后使用加密的密钥对其进行异或运算。

如果你没有钥匙,那就是浪费你的时间


但是,如何让它工作呢?我想没有钥匙。我只能看到
“#散列(fldPassword)#”
。请帮忙。谢谢。

如果我正确阅读了文档,CFMX\u COMPAT哈希就是MD5

因此:


验证您是否可以访问ColdFusion安装应该很容易。

如果我正确阅读了文档,CFMX\u COMPAT散列只是MD5

因此:

验证您是否有权访问ColdFusion安装应该很容易

实际上有一些文章告诉我如何解密

散列和加密不是一回事。加密可以反转。如果使用了正确的键ETETERA,则可以恢复原始值。而散列是单向的。散列后,无法恢复原始值。(从理论上讲,一些较弱的散列算法已经被破坏。)因此不能“解密”散列值。但您可以复制模糊的结果字符串

我找到了这个文档,说默认加密是CFMX_COMPAT

实际上它是指默认的算法。然而,我不太确定这个描述是否正确。(编辑:正如Rasmus正确指出的,它确实说默认值是MD5)然而,CF9/7还是默认为MD5。即使算法是
CFMX\u COMPAT
。因此,在任何一种情况下,C#中的一个简单MD5哈希都会给出相同的结果

ie所有这些都产生相同的结果ie
098F6BC4621D3CADE4E832627B4F6

    #hash("test")#
    #hash("test", "cfmx_compat")#
    #hash("test", "md5")#
实际上有一些文章告诉我如何解密

散列和加密不是一回事。加密可以反转。如果使用了正确的键ETETERA,则可以恢复原始值。而散列是单向的。散列后,无法恢复原始值。(从理论上讲,一些较弱的散列算法已经被破坏。)因此不能“解密”散列值。但您可以复制模糊的结果字符串

我找到了这个文档,说默认加密是CFMX_COMPAT

实际上它是指默认的算法。然而,我不太确定这个描述是否正确。(编辑:正如Rasmus正确指出的,它确实说默认值是MD5)然而,CF9/7还是默认为MD5。即使算法是
CFMX\u COMPAT
。因此,在任何一种情况下,C#中的一个简单MD5哈希都会给出相同的结果

ie所有这些都产生相同的结果ie
098F6BC4621D3CADE4E832627B4F6

    #hash("test")#
    #hash("test", "cfmx_compat")#
    #hash("test", "md5")#

我相信hash()被设计成一个单向函数,不应该被“解密”是吗?有趣的是,为什么Adobe/Macromedia将它命名为CFMX\u COMPAT,而实际上它只是一个
MD5
?@Henry-听起来像是一个文档错误。(需要时,哪里有勘误表?;)MX6的
hash()
默认值是
MD5
-而不是
CFMX\u COMPAT
。此外,在以后的版本中,他们将所有内容的默认值都减少为
CFMX\u COMPAT
,这是毫无意义的。它甚至不是一个散列算法。我相信hash()的可能副本是设计为一个不应该被“解密”的单向函数,是吗?有趣的是,为什么Adobe/Macromedia将它命名为
CFMX\u COMPAT
,而实际上它只是一个
MD5
?@Henry-听起来像是一个文档错误。(需要时,哪里有勘误表?;)MX6的
hash()
默认值是
MD5
-而不是
CFMX\u COMPAT
。此外,在以后的版本中,他们将所有内容的默认值都减少为
CFMX\u COMPAT
,这是毫无意义的。这甚至不是一个散列算法..可能是重复的谢谢。我同时得到了两个正确答案。我奖励了@Leigh,只是因为你已经获得了太高的声誉分数。希望你不介意。哈哈,我得到了同情票;)我想说把它交给拉斯姆斯,因为他得到了“默认”的权利,而我没有。所以+1谢谢你。我同时得到了两个正确答案。我奖励了@Leigh,只是因为你已经获得了太高的声誉分数。希望你不介意。哈哈,我得到了同情票;)我想说把它交给拉斯姆斯,因为他得到了“默认”的权利,而我没有。所以+1投票人请留下评论。鉴于以上例子证明答案是正确的,我很好奇你认为什么是错误的…请留下评论。鉴于以上例子证明答案是正确的,我很好奇你认为什么是错误的。。。