(復号化)によって次の例外が発生する場合がありますが、理由を正確に認識できません:
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
これはブラウザの問題ですか??!!