pb des64.dll算出的代码与c# des64加密的不一样

北京大丸子 2009-08-07 05:27:35
我用的是pb的des64.dll里面的函数
ll_size = b64_size(LenA(ls_source),1)
ls_jiami = Space(ll_size)
b64_des(ls_source,ls_jiami,ls_key,LenA(ls_source),1)


对abcabc进行加密
密钥ls_key 是12345678
pb得出的数:h+Zh+ua48NM=
c#得出的数:7YdjOdeeR0g=

请问pb那个地方有问题?


pb的引用函数
Function int b64_size(ulong size,ulong flag) Library "des64.dll"
Function int b64_des(ref String in,ref string out,string key,ulong size,ulong flag) Library "des64.dll" alias for "b64_des;Ansi"






c#的函数

byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); byte[] rgbIV = Encoding.UTF8.GetBytes(encryptKey); byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new Cry


CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Convert.ToBase64String(mStream.ToArray());



...全文
342 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
WCSTZ0137 2009-09-25
  • 打赏
  • 举报
回复
我的md5也不一样
北京大丸子 2009-09-25
  • 打赏
  • 举报
回复
如果是这样,那么我写的程序直接加密,对方用c#写的解密,虽然都说是des64,但结果不能通用
wguan 2009-09-25
  • 打赏
  • 举报
回复
楼主不必担心,我用多种方法算出的des64都不一样,用des64.dll的算出结果与你的相同,用pb代码写的des64加密的结果以及用另外一个dll(NetDiskDll.dll)算出的结果均各不相同。

只要加密后的字符串能用同样的方法解压为原来的字符串便满足一般的要求。
北京大丸子 2009-09-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jiang396 的回复:]
问了很久,没有答案
[/Quote]

网上下载的都用过了,都一样。
shinesky 2009-09-04
  • 打赏
  • 举报
回复
我也想知道。
p33190440 2009-09-04
  • 打赏
  • 举报
回复
有可能是ANSI的问题
pcwe2002 2009-09-04
  • 打赏
  • 举报
回复
des64.dll哪来的
gui41021 2009-09-03
  • 打赏
  • 举报
回复
去掉ansi的话转换出来的是类似“䝉穮呒婎婎㵑”的乱码,加上之后解密出的串和加密前的不一样 少几位。。
gui41021 2009-09-03
  • 打赏
  • 举报
回复
楼主这个问题解决了么 我也遇到了
北京大丸子 2009-09-03
  • 打赏
  • 举报
回复
问了很久,没有答案
北京大丸子 2009-08-11
  • 打赏
  • 举报
回复
不行啊,去掉ansi的话转换出来的是类似“䝉穮呒婎婎㵑”的乱码
jjoulejcc 2009-08-09
  • 打赏
  • 举报
回复
mark
WorldMobile 2009-08-08
  • 打赏
  • 举报
回复
pb的引用函数
Function int b64_size(ulong size,ulong flag) Library "des64.dll"
Function int b64_des(ref String in,ref string out,string key,ulong size,ulong flag) Library "des64.dll" alias for "b64_des;Ansi"

改为

pb的引用函数
Function int b64_size(ulong size,ulong flag) Library "des64.dll"
Function int b64_des(ref String in,ref string out,string key,ulong size,ulong flag) Library "des64.dll" alias for "b64_des"

把ansi去掉再试一下

1,077

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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