输入不是有效的Base-64字符串The input is Base-64

今天解密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"));
}

img

img

img

编码之前把%替换成其它的字符串,解码后再替换回来