一个字符窜testStr,我先用.net提供的加密类用“DES”算法给它加密,然后用Convert.ToBase64String转换后发送出去。
在接受方想用Convert.FromBase64String转换为byte[],然后用相同算法解密。
但是用Convert.FromBase64String的时候对于有些字符串会出错,报告“System.FormatException: Base-64 字符数组的无效长度。”的异常,为什么?
在接受方想用Convert.FromBase64String转换为byte[],然后用相同算法解密。
但是用Convert.FromBase64String的时候对于有些字符串会出错,报告“System.FormatException: Base-64 字符数组的无效长度。”的异常,为什么?
解决方案 »
- XAML运用
- 实时的抓捕线程状态?
- 如何得到DbDataAdapter.Fill(DataSet, String)出错时返回出错时候已经读入的数据量
- 求教:如何将客户端SQL Server数据压缩后上传到服务端!
- SmtpClient 发Email的问题,紧急求助
- 再次提问正则表达式
- SqlParameterCollection 仅接受非空的 SqlParameter 类型对象。参数名: value
- 关于ADO.NET设计模型上的困惑?
- 初学C#,请问一个treeview显示数据库的分层数据并增删节点的问题,急,多谢!
- 大家一起来研究EXCEL问题,有一个例子
- hashtable如何保存及读出
- C#和asp.net使用者进来!这是每个人都遇到的问题?
不信你试:Convert.FromBase64String(Convert.ToBase64String(...)),行得通。
hZU3Rj7rmdnUGVCBEKTSPpfvfaKoZBiVScdZyT2fUYY=7wlXZ2N9wrX4bhLzRrjOFs6K9lSEE1jjiZ4yiyRVw6I=是不是有问题?
该如何改呢?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";
}
} }多多谢指教!