Convert.FromBase64String的时候对于有些字符串会出错

nihao955 2008-09-01 08:54:42
一个字符窜testStr,我先用.net提供的加密类用“DES”算法给它加密,然后用Convert.ToBase64String转换后发送出去。
在接受方想用Convert.FromBase64String转换为byte[],然后用相同算法解密。

但是用Convert.FromBase64String的时候对于有些字符串会出错,报告“System.FormatException: Base-64 字符数组的无效长度。”的异常,为什么?
...全文
1860 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lextm 2008-09-01
  • 打赏
  • 举报
回复
首先应该尝试比较发出和接收到的byte[]是不是一样。很多时候接收那边会不一致(例如结尾多了一些空白)。然后你再来质疑Base64解码错误吧。
nihao955 2008-09-01
  • 打赏
  • 举报
回复
这是我的加密方法?
该如何改呢?

public class EncryptText
{

private static byte[] IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
/// <summary>
/// 加密方法
/// </summary>
/// <param name="ClearText">明文</param>
/// <param name="Key">加密的KEY</param>
/// <returns>加密的密文</returns>

public string EText(string ClearText, string Key)
{
byte[] rgbKey = Encoding.Default.GetBytes(Key.Substring(0, 8));
byte[] rgbIV = IV;
byte[] clearTextArray = Encoding.UTF8.GetBytes(ClearText);
try
{
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(clearTextArray, 0, clearTextArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
catch
{
return "null";
}
}

}

多多谢指教!
whoami333 2008-09-01
  • 打赏
  • 举报
回复
不要看显示出来的,看看末尾不能打印出来的字符。
greystar 2008-09-01
  • 打赏
  • 举报
回复
说明加解密有问题
greystar 2008-09-01
  • 打赏
  • 举报
回复
不符合他的标准当然会出错了.
nihao955 2008-09-01
  • 打赏
  • 举报
回复
字符串内容是这样的:
hZU3Rj7rmdnUGVCBEKTSPpfvfaKoZBiVScdZyT2fUYY=7wlXZ2N9wrX4bhLzRrjOFs6K9lSEE1jjiZ4yiyRVw6I=

是不是有问题?
cftea 2008-09-01
  • 打赏
  • 举报
回复
绝对是由于漏发了,或多发了,或漏取了,或多取了。
不信你试:Convert.FromBase64String(Convert.ToBase64String(...)),行得通。
whoami333 2008-09-01
  • 打赏
  • 举报
回复
你检查一下看看是不是字符串末尾多了什么字符。
whoami333 2008-09-01
  • 打赏
  • 举报
回复
不能return "null";

111,094

社区成员

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

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

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