在某些情况下,我通过 (decryption) 得到以下异常,我无法准确识别原因:
Base-64 字符数组的长度无效
我的代码:
public static string encodeSTROnUrl(string thisEncode)
{
if (null == thisEncode)
return string.Empty;
return HttpUtility.UrlEncode(Encrypt(thisEncode));
}
// string thisDecode = "3Dn%2bsJJPXprU4%3d"; //this is the value which cause the exception.
public static string decodeSTROnUrl(string thisDecode)
{
return Decrypt(HttpUtility.UrlDecode(thisDecode));
}
QueryStringEncryption.Cryptography.decodeSTROnUrl(Request.QueryString["val"].ToString());
引发异常的确切行是:
Byte[] byteArray = Convert.FromBase64String(text);
我以为我通过在加密和解密操作之前和之后进行编码和解码来解决这个问题。但是有些值仍然抛出这个异常。
注意:我注意到一些奇怪的行为:作为查询字符串发送到我的邮件的 id 是:n%2bsJJPXprU4%3d
并且它没有例外地工作..
以及有问题的用户发送的 url 包含3Dn%2bsJJPXprU4%3d
这是浏览器的问题吗??!!