首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

DES加密的有关问题

2013-06-19 
DES加密的问题下面的加密函数,输入正确的参数(包括不超过10位的源串),返回的加密串是空值,不知道哪里出了

DES加密的问题
下面的加密函数,输入正确的参数(包括不超过10位的源串),返回的加密串是空值,不知道哪里出了问题,请各位高手帮忙看看:

String^ EnCrypt(String^ srcString,array<unsigned char>^ DESKey,array<unsigned char>^ DESIv)
{
DESCryptoServiceProvider^ DESalg = gcnew DESCryptoServiceProvider;
DESalg->KeySize = 64;
DESalg->Key = DESKey;
DESalg->IV = DESIv;
System::IO::MemoryStream^ mStream = gcnew System::IO::MemoryStream(100);
System::Text::ASCIIEncoding^ ascEncoding = gcnew System::Text::ASCIIEncoding;
array<unsigned char>^ chrArray = ascEncoding->GetBytes(srcString);
CryptoStream^ crpStream = gcnew CryptoStream(mStream,DESalg->CreateEncryptor(),CryptoStreamMode::Write); 
crpStream->Write(chrArray,0,chrArray->Length);
crpStream->Flush();
return ascEncoding->GetString(mStream->ToArray());
}
[解决办法]

引用:
parhelia512,我验证了你的程序,这样确实没问题。但我改成用String^返回/传入密文后,解密函数就不行了(报错,“不正确的数据”)。
这就说明问题出在array->string->array,转换前和恢复出来的array不同

热点排行