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