DES算法加密问题(紧急求教!)

心剑2012 2002-08-13 04:37:20
我写的DES加密主程序如下:
private void enc_btn_Click(object sender, System.EventArgs e)
{
DES des = new DESCryptoServiceProvider();

string key="1978";
string iv="0809";
byte[] deskey=Encoding.Unicode.GetBytes(key);
byte[] desIV=Encoding.Unicode.GetBytes(iv);
Byte[] plainBytes = new byte[100];

MemoryStream ms = new MemoryStream();

CryptoStream cs = new CryptoStream(ms,des.CreateEncryptordes.Key,des.IV),CryptoStreamMode.Write);

cs.Write(plainBytes, 0, plainBytes.Length);

// 输出加密后结果
enc_text.Text = Encoding.ASCII.GetString(plainBytes);

}
我无法看到我的加密后的结果呀,在enc_text这个textbox中竟然什么也不显示!我已经几乎看遍SDK了,拜托各位高手救命呀!
...全文
87 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqchen79 2002-08-14
  • 打赏
  • 举报
回复
有这样几个问题:
1. 你的plainBytes数组没有初始化,这是你要加密的原始内容。(key和iv只是算法初始化用的)。
2. MemoryStream要指定初始容量:
MemoryStream ms = new MemoryStream(plainBytes.Length);
3. 加密的结果存在MemoryStream里,而不是plaiBytes里面。
byte[] result = ms.ToArray();
2. 加密之后的Stream包含的是Bytes,不保证一定是可显示的ASCII字符,使用ASCII编码不正确。
可以使用BASE64编码:
System.Convert.ToBase64String(result);

qqchen79
[MS MVP]
dev_uoboy 2002-08-13
  • 打赏
  • 举报
回复
我改了一下你的代码,你测试以下。

DES des = new DESCryptoServiceProvider();

string key="1977";
string iv="1809";
byte[] deskey=Encoding.Unicode.GetBytes(key);
byte[] desIV=Encoding.Unicode.GetBytes(iv);
byte[] plainBytes = new byte[100];

for (int i=0; i<plainBytes.Length; i++)
plainBytes[i] = 215; //这里是初始化数组

MemoryStream ms = new MemoryStream(plainBytes); // 这里很关键,创建内存流,要代上你要加密的内容plainBytes

CryptoStream cs = new CryptoStream(ms,des.CreateEncryptor(des.Key,des.IV),CryptoStreamMode.Write);

cs.Write(plainBytes, 0, plainBytes.Length);

// 输出加密后结果
enc_text.Text = Encoding.ASCII.GetString(plainBytes);
dev_uoboy 2002-08-13
  • 打赏
  • 举报
回复
程序根本不对,你这一步 CryptoStream cs = new CryptoStream(ms,des.CreateEncryptordes.Key,des.IV),CryptoStreamMode.Write);
过后,我调试的时候根本没有内容。

你要加密的内容在那里啊???
心剑2012 2002-08-13
  • 打赏
  • 举报
回复
麻烦各位看看吧,帮帮我吧!

111,119

社区成员

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

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

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