【发布时间】:2012-09-17 22:39:08
【问题描述】:
我复制并使用了本页示例中的 C# 代码,C# equivalent to this ColdFusion Decrypt function,但它不适用于我。我不确定该页面上的coldfusion解密示例是否与我所拥有的相同。无论如何,我的coldfusion代码是这样的:
加密:
<cfset strBase64Value = ToBase64(encrypt(strValue,"mykey")) />
解密:
<cfset strDecrypted = decrypt(ToString(toBinary(strBase64Value)),"mykey") />
其中 strValue 是开头的字符串,strDecrypted 是返回的解密字符串,strBase64Value 是加密字符串,“mykey”是用于加密/解密字符串的密钥密码。
我的 C# 代码如下:
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;
}
}
我收到一条错误消息,提示“指定的密钥不是此算法的有效大小。 参数名称:key"
【问题讨论】:
-
你对 string1、string2 的取值是多少?
标签: c# coldfusion encryption