鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 网站安全 > 加密解密 > >

DES加密的有关问题

来源:互联网 作者:佚名 时间:2015-09-08 10:54
DES加密的 问题 下面的加密函数,输入正确的参数(包括不超过10位的源串),返回的加密串是空值,不知道哪里出了 问题 ,请各位高手帮忙看看: String^EnCrypt(String^srcString,arrayunsignedchar^DESKey,arrayunsignedchar^DESIv) { DESCryptoServiceProvi
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不同
网友评论
<