我在ColdFusion中使用encrypt(string,key)
和decrypt(string,key)
进行加密。现在我想要做的是在ColdFusion中加密,但在asp.net C#中解密。有人能告诉我怎么做吗?
如果这是我的ColdFusion代码:
encrypt("hello","abcdefgh")
decrypt(".....","abcdefgh"
asp.net中的等效代码是什么样的?谢谢。
答案 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。