我从API服务器获取加密字符串
try
{
HttpWebRequest _request = (HttpWebRequest)WebRequest.Create(_url);
_request.KeepAlive = false;
using (HttpWebResponse _response = (HttpWebResponse)_request.GetResponse())
{
using (Stream _stream = _response.GetResponseStream())
{
using (StreamReader _reader = new StreamReader(_stream, Encoding.UTF8))
{
string _content = _reader.ReadToEnd();
Console.WriteLine(Decrypt(_content.ToString(), _key, _iv));
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
但是我收到了一个错误:
System.FormatException:输入不是有效的Base-64字符串 包含一个非基础64个字符,两个以上的填充字符,或 填充字符中的非法字符。
奇怪的是,如果我复制返回的字符串,它可以解密:
string str = "jcXddetnrE6ujO/Al1pqSRPK1+JXfal1XgANOsojPV9SUMOjnBgW09AacxhOUGYWZQoUlfsTEk/8Al1NuX/Gk/S2utUCLeEqHLrXwP5tkFgrrqUffHOzxWyD5vwIY2zQ";
Console.WriteLine(Decrypt(str, _key, _iv));
StreamReader中的字符串是否必须以某种方式转换?
答案 0 :(得分:1)
奇怪的是,如果我复制了返回的字符串,那么解密就好了
确保在解密之前删除前导和尾随引号和空格。手动复制字符串时可能已删除这些内容。