日期:2014-05-17  浏览次数:21112 次

AES加密问题 C版本和C#版本通用的问题
现在我又了C版本和C#版本的AES加密,可是这两个算法加密结果不一样,求各位大神有木有C和C#加密结果相同的代码啊,麻烦发一份,谢谢,邮箱humingzhen888@163.com
------最佳解决方案--------------------
算法应该是通用的
如果你做不了
可以用C写DLL给C#调用


------其他解决方案--------------------
传参的时候2个软件可以用固定长度的char数组发和收。
------其他解决方案--------------------
有木有高手帮忙给解决下啊,或者给个dll也行啊。。。
------其他解决方案--------------------
高手哪里去了都。。。呜呜
------其他解决方案--------------------
我就知道C和C#编译顺序不一样。
------其他解决方案--------------------
引用:
算法应该是通用的
如果你做不了
可以用C写DLL给C#调用

好,现在问题来了,C写的Dll也写好了,也能加载进C#,但是C写的函数里需要传入char类型的明文,C#要得到char类型的加密过的密文,C#也可以接收到,可是得不到正确的结果,大神这怎么解决
------其他解决方案--------------------
引用:
算法应该是通用的
如果你做不了
可以用C写DLL给C#调用

我把C和C#里面的函数调用给粘一下吧,
C函数
//key是密钥,plainText是要传入的明文,cipherText是C#要接收的密文
int AESenc(char *key, char *plainText, char *cipherText)//
C#调用
[DllImport("aes.dll", CharSet = CharSet.Ansi)]
//PlainText是预先定义好的明文,cipherText是经过初始化过的StringBuilder
 public static extern int AESenc(string key, StringBuilder PlainText,  [Out]StringBuilder cipherText);

代码就是这样,可是接收到的cipherText总是不正确的(能接收到但是不正确),求大神帮忙解决
------其他解决方案--------------------
传出的时候用stringbuilder解决的,并显示的表明[out]就可以了,结账了。。。。。