Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
coldfusion解密到c#_C#_Coldfusion_Encryption - Fatal编程技术网

coldfusion解密到c#

coldfusion解密到c#,c#,coldfusion,encryption,C#,Coldfusion,Encryption,我从这个页面复制并使用了示例中的C#代码,但它对我不起作用。我不确定该页面上的coldfusion decrypt示例是否与我的相同。无论如何,我的coldfusion代码如下: 要加密: <cfset strBase64Value = ToBase64(encrypt(strValue,"mykey")) /> 我得到一个错误,该错误表示“指定的密钥不是此算法的有效大小。 参数名称:key“链接的示例使用AES,这是一种完全不同的算法。您的代码使用旧的算法。在标准的c#库中没有等

我从这个页面复制并使用了示例中的C#代码,但它对我不起作用。我不确定该页面上的coldfusion decrypt示例是否与我的相同。无论如何,我的coldfusion代码如下:

要加密:

<cfset strBase64Value = ToBase64(encrypt(strValue,"mykey")) />
我得到一个错误,该错误表示“指定的密钥不是此算法的有效大小。
参数名称:key“

链接的示例使用AES,这是一种完全不同的算法。您的代码使用旧的算法。在标准的c#库中没有等价物。但这里是(摘自开源引擎:)


这就是说,
cfmx\u compat
是非常不安全的,只为向后兼容而维护。我强烈建议切换到更安全的算法,如AES等。

您对string1、string2的值是多少?可能重复的
<cfset strDecrypted = decrypt(ToString(toBinary(strBase64Value)),"mykey") />
    private string ConvertString(string string1, string string2)
    {
        byte[] key = ASCIIEncoding.ASCII.GetBytes(string1);
        byte[] encryptedData = Convert.FromBase64String(string2);

        Aes aes = Aes.Create();
        aes.Mode = CipherMode.ECB;

        using (var ms = new MemoryStream())
        {
            using (var cs = new CryptoStream(ms, aes.CreateDecryptor(key, null), CryptoStreamMode.Write))
            {
                cs.Write(encryptedData, 0, encryptedData.Length);
            }
            byte[] decryptedData = ms.ToArray();
            string clearText = Encoding.ASCII.GetString(decryptedData);
            return clearText;
        }
    }