使用 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 中的等效代码会是什么样子?谢谢。
根据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在上面的评论中发布的链接。