为什么相同的过程执行多次,DES加密以后的密文不一致?

rehuo 2018-10-22 03:34:53
public static string DesEncrypt(string sValue, string sKey)
{
string outString = "";
try
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] buffer = Encoding.UTF8.GetBytes(sValue);
des.Padding = PaddingMode.ISO10126;
des.Mode = CipherMode.ECB;
des.Key = Encoding.UTF8.GetBytes(sKey.PadLeft(8, '0').Substring(0, 8));
des.IV = Encoding.UTF8.GetBytes(sKey.PadLeft(8, '0').Substring(0, 8));
MemoryStream ms = new MemoryStream();
using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(buffer, 0, buffer.Length);
cs.FlushFinalBlock();
cs.Close();
}
byte[] by = ms.ToArray();
foreach (byte item in by)
{
outString += item.ToString("X").PadLeft(2, '0');
}
ms.Dispose();
des.Clear();
}
catch
{
outString = "";
}
return outString;
}
Key="12345678",value="111111",为什么连续执行上面过程多次,每次得到的结果都不一样?
...全文
638 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
rehuo 2018-10-22
  • 打赏
  • 举报
回复
谢谢,真是研究不仔细
本人QQ-554433626 2018-10-22
  • 打赏
  • 举报
回复
des.Padding = PaddingMode.ISO10126;
摘要: ISO10126 填充字符串由一个字节序列组成,此字节序列的最后一个字节填充字节序列的长度,其余字节填充随机数据

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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