ColdFusion的CFMX_COMPAT加密算法

时间:2012-12-21 21:28:27

标签: encryption coldfusion

在回顾一些旧的coldfusion代码时,我发现有几个数据实例是通过加密/解密函数用CFMX_COMPAT算法加密的。

经过一段时间的搜索,我一直无法找到这种算法。文档提到它现在是最不安全的方法,但我想知道为什么会这样。

(其中一些人已经建议它只是MD5,但由于数据被解密,这没有多大意义。)

3 个答案:

答案 0 :(得分:6)

这是一种基于XOR- 算法,但不是教科书算法,因此一揽子XOR算法答案不正确(过去已经错误地应用于这些CFMX_COMPAT问题)。

要详细了解此专有XOR的源代码,请检查this answer以“比较C#和ColdFusion之间的密码哈希值”,其中@Leigh(也评论过其中一个问题)帮助提供了算法的准确端口,直接从Railo源提取。

答案 1 :(得分:1)

这是一个简单的XOR算法。从技术上讲它是加密,但它是非常非常非常非常弱的加密。我应该多放一些"非常在那里。

据我所知,明文的每一位都是与密钥中的下一个字节进行异或,结果是密文。

所以如果我们看一下所有内容:

P:1 0 1 0 1 0 1 0 0 0 1

K:0 0 1 1 1 0 0 1 0 1 0

C:1 0 0 1 0 0 1 1 0 1 0

P =明文

K = Key

C =密文

如果您不熟悉XOR,它的工作原理如下:

0 XOR 0 - > 0

0 XOR 1 - > 1

1 XOR 0 - > 1

1 XOR 1 - > 0

答案 2 :(得分:0)

绝对不是MD5,因为这是一种哈希算法,而不是加密算法(正如你所指出的那样)。

我不知道它使用的是什么算法,但您可以在cfusion.jar中反编译相关的Java类并查看。我怀疑是否有更好的发现方式。我怀疑即使你打开一张他们实际告诉你的Adobe支持票。