今天解密string字符串的时候,抛出了异常 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
缓存的cookie信息如下:pqB18Qpug5t6mXTHTp9GbWpr1QTWvlzKyBSJ9y%2b%2fzoeOGU8%2fi%2b5dwGzn5dy0yWfZf%2f7i7oWBU%2bFXYbrlT5SA%2bdRqnOKslqeIcCEzLR75jIWlBNsNG11%2bjQfIhU6fEBdz200weg4%2bmW78ZY%2bMUk1NfQ%3d%3d
查询了其他答案,说是Base-64的规则不允许有%这种特殊符号,但是我这个存储的cookie的信息,去掉%的话内容肯定就不同了
try
{
decryptString = DEncrypt.Decrypt(cookie, secretKey);
return decryptString;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return String.Empty;
throw;
}
——————————————
public static string Decrypt(string original, string key)
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
return Decrypt(original, key, Encoding.GetEncoding("gb2312"));
}
编码之前把%替换成其它的字符串,解码后再替换回来