服务器上 convert.frombase64string(string xml) 有时会出问题

zfzfzfzllwban 2016-06-21 07:05:28
这是个解密方法 ,全部代码如下:

public static string DecryptUTF8Strings(string strText, string key)
{
byte[] buffer = new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(key));
TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();

provider.Key = buffer;

provider.Mode = CipherMode.ECB;

byte[] inputBuffer = Convert.FromBase64String(strText);

return Encoding.UTF8.GetString(provider.CreateDecryptor().TransformFinalBlock(inputBuffer, 0, inputBuffer.Length));

}

也不报错 ,就是打不开网页了,我是在这一步前后加了日志才发现的,到这一步就没有下面的日志了。
我在自己本地vs上从来没出过问题,在服务器上有时就会不行,过一段时间自己又好了。求解,分全押上了
...全文
344 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zx852046 2016-07-07
  • 打赏
  • 举报
回复
上面几位说的 把出错的那一行加进try..catch里是一个办法。 排除是网络的问题,有可能是因为你的webservice里一直循环调用这个方法导致出现这种无法解释的“诡异”现象,也就能这么解释了。
  • 打赏
  • 举报
回复
细化你的日志,把 strText 的值加在日志中。
全栈极简 2016-06-28
  • 打赏
  • 举报
回复
我在自己本地vs上从来没出过问题,在服务器上有时就会不行,过一段时间自己又好了。 这种“诡异”的问题,一般都是由于数据格式的错误造成的,所以你得加个try...catch,把strText内容和异常信息记录下来。
tanta 2016-06-28
  • 打赏
  • 举报
回复
非合法的base64。你需要查找下strText从哪里来的,是否正常。
Forty2 2016-06-22
  • 打赏
  • 举报
回复
不是所有的字符串都是合法的base64。比如:
byte[] bs1 = Convert.FromBase64String("MTox"); // ok
byte[] bs2 = Convert.FromBase64String("MTo");  // 将抛出格式异常
这个属于‘输入’错误。你记录一下异常,然后把异常抛给调用方,或者告诉调用方strText有误就可以了。

110,477

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧