当我尝试使用AES加密,我得到的错误Invalid length for a Base-64 char array or string
当我尝试执行这行代码:Rijndael加密/解密抛出异常
byte[] clearBytes = Convert.FromBase64String(clearText);
这里是我的代码:
public string AESEncrypt(string clearText)
{
clearText = HttpUtility.UrlEncode(clearText) ;
byte[] clearBytes = Convert.FromBase64String(clearText) ;
byte[] ivBytes = Encoding.UTF8.GetBytes(InitV);
byte[] keyBytes = Encoding.UTF8.GetBytes(EncryptionKey) ;
var symmetricKey = new RijndaelManaged();
symmetricKey.Mode = CipherMode.CBC;
symmetricKey.Padding = PaddingMode.PKCS7;
var enctryptor = symmetricKey.CreateEncryptor(keyBytes, ivBytes);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, enctryptor, CryptoStreamMode.Write))
{
cs.Write(clearBytes, 0, clearBytes.Length);
cs.Close();
}
clearText = Convert.ToBase64String(ms.ToArray());
}
return clearText;
}
或者,当我尝试解密,我得到的错误The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.
试图执行这行代码:
byte[] cipherBytes = Convert.FromBase64String(cipherText);
这里是我的代码:
public string AESDecrypt(string cipherText)
{
string clearText;
cipherText = HttpUtility.UrlEncode(cipherText) ;
byte[] cipherBytes = Convert.FromBase64String(cipherText);
byte[] ivBytes = Encoding.UTF8.GetBytes(InitV);
byte[] keyBytes = Encoding.UTF8.GetBytes(EncryptionKey);
var symmetricKey = new RijndaelManaged();
symmetricKey.Mode = CipherMode.CBC;
symmetricKey.Padding = PaddingMode.PKCS7;
var enctryptor = symmetricKey.CreateDecryptor(keyBytes, ivBytes);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, enctryptor, CryptoStreamMode.Write))
{
cs.Write(cipherBytes, 0, cipherBytes.Length);
cs.Close();
}
clearText = Convert.ToBase64String(ms.ToArray());
}
return clearText;
}
一定表示你的问题的编程语言。否则,它们将不容易被看到,并且自动语法突出显示也不会被应用。 – 2014-08-28 22:12:32
不要大幅编辑您的问题。如果您认为您的原始问题不再有效,请删除它或其他内容,但绝不会对其进行实质性更改(尤其是在回答问题后)。 – 2014-08-28 22:18:05
Moi,请不要为标题添加标签,使用适当的标签标记问题就足够了。 – 2014-08-28 22:36:39