使用 C# 解密来自 Coldfusion 的加密字符串

本文关键字:加密 字符串 Coldfusion 解密 使用 | 更新日期: 2023-09-27 18:35:50

我在 ColdFusion 中使用 encrypt(string,key)decrypt(string,key) 进行加密。 现在我想做的是在 ColdFusion 中加密,但在 asp.net C# 中解密。有人可以告诉我如何做到这一点吗?

如果这是我的 ColdFusion 代码:

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

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

使用 C# 解密来自 Coldfusion 的加密字符串

根据Coldfusion的文档,

ColdFusion 标准版安装了一个具有以下算法的加密库:

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

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

正如 Josh 指出的那样,如果不指定算法,CF 将使用默认算法cfmx_compat。与AES,Blowfish等标准算法不同,.NET中没有它的库。若要解密 C# 中的值,.NET 端需要使用自定义类。 (请参阅此处 Railo 的 cfmx_compat 类的 C# 端口。

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