使用c#解密来自coldfusion的加密字符串

时间:2012-05-30 14:37:31

标签: c# asp.net coldfusion coldfusion-8

我在ColdFusion中使用encrypt(string,key)decrypt(string,key)进行加密。现在我想要做的是在ColdFusion中加密,但在asp.net C#中解密。有人能告诉我怎么做吗?

如果这是我的ColdFusion代码:

encrypt("hello","abcdefgh")
decrypt(".....","abcdefgh"

asp.net中的等效代码是什么样的?谢谢。

2 个答案:

答案 0 :(得分:3)

根据Coldfusion的documentation

  

ColdFusion标准版使用以下算法安装加密库:

     

CFMX_COMPAT:ColdFusion MX和之前版本中使用的算法。此算法是最不安全的选项(默认)。

除非您在C#中实现CF解密算法,否则无法对其进行解密。您必须指定不同的加密算法,如3DES,才能对其进行解密。

答案 1 :(得分:2)

正如Josh所指出的,如果你没有指定算法,CF使用默认算法cfmx_compat。与AES,Blowfish等标准算法不同,.NET中没有它的库。要解密C#中的值,.NET端需要使用自定义类。 (请参阅此处查看我的C# port of Railo's cfmx_compat class。)

那就是说,我建议不要使用cfmx_compat,因为它是一个非常弱的算法。它仅包含在CF中以实现向后兼容性。在ColdFusion中使用AES,Blowfish等强大的算法会更好。由于这些算法是标准的,因此与C#(或任何其他语言)的互操作性将更加容易。有关示例,请参阅上面评论中发布的链接Al。