2

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

如果这是我的 ColdFusion 代码:

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

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

4

2 回答 2

3

根据 Coldfusion 的文档

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

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

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

于 2012-05-30T15:07:01.757 回答
2

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

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

于 2012-05-30T18:32:13.313 回答