问题描述
publicstaticexternintDesEncrypt(byte[]key,byte[]InBuf,byte[]OutBuf,intBufLen);byte[]pubkye=ASCIIEncoding.ASCII.GetBytes("23@44#55#55&*$@56%fg&key");byte[]Keys=hextobyte(uncompress);intblen=0;byte[]buffer=newbyte[128];intErr=DesEncrypt(pubkye,Keys,buffer,blen);为什么获得的值不对。获不到值尼?
解决方案
解决方案二:
我最近也在开发一个项目,也是用C#调用C语言的DLL方法,下面是我的总结,我也不太懂,希望能帮到你:在C#中调用C语言方法(dll文件),首先要将封装好的DLL文件导入本项目的bin目录下的Debug文件夹里,然后再在要使用的页面定义DLL函数接口[DllImport("CDLL2",EntryPoint="CheckLogin",CallingConvention=CallingConvention.StdCall)]publicstaticexternstringCheckLogin(stringUserName,stringPassWord);//此为DLL文件里的方法原型,在此调用若dll里的方法的返回值是xml,则还需要对其进行解析,取值,解码:publicstaticboolgetResult(strings)//取出xml中result节点的值{xmldoc=newXmlDocument();xmldoc.LoadXml(s);stringresult;try{result=xmldoc.GetElementsByTagName("result")[0].ChildNodes[0].Value;//MessageBox.Show(result);if(result.Equals("True")){returntrue;}else{returnfalse;}}catch(Exceptionee){MessageBox.Show(ee.Message);}returnfalse;对取出的节点的值进行解码(从C语言到c#的转换):Encoding.Default.GetString(Convert.FromBase64String(result));将编码的字节数组转换为已解码的字符串System.Web.HttpUtility.UrlDecode(strContent,System.Text.Encoding.GetEncoding("GB2312")).ToUpper();
解决方案三:
楼主,.net有des算法的类,直接用一下就好。不用调用外部的dll
解决方案四:
up