免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1357 | 回复: 8
打印 上一主题 下一主题

异种平台数据交互的请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-25 16:17 |只看该作者 |倒序浏览
小弟在处理一加密程序时,遇到以下问题:
在AIX(big_endian)上通过“^”和DES运算生成一密文,然后通过网络传输到一SCO(little_endian)机器上,然后通过“^”和DES解密,这样就出现了问题:无法得到正确明文。
小弟也查看了精华中的“有关字节序的问题”的帖子,但没想到好的方法实现异种平台间诸如此类问题的解决方法,万望各位高手不吝赐教。

论坛徽章:
0
2 [报告]
发表于 2003-12-25 16:56 |只看该作者

异种平台数据交互的请教

某些字节要重排。

如果你的算法是以字节为单位,则没有问题。

论坛徽章:
0
3 [报告]
发表于 2003-12-25 21:46 |只看该作者

异种平台数据交互的请教

你的 DES 算法是自己写的,对不?

论坛徽章:
0
4 [报告]
发表于 2003-12-26 08:57 |只看该作者

异种平台数据交互的请教

小弟昨天查看相关书籍得知:BIG_ENDIAN和LITTLE_ENDIAN好象只对存储单位大于1个字节的有影响,那我加密算法中处理“^”操作时的两个变量是U_c型的,应该没问题。也许是DES的问题(DES是一位朋友提供的),我再仔细看一看,遇到不明白的地方还希望您指点

论坛徽章:
0
5 [报告]
发表于 2003-12-26 09:35 |只看该作者

异种平台数据交互的请教

如果是unsigned char,那么和BIG_ENDIAN和LITTLE_ENDIAN没关系,可能你的算法有问题

论坛徽章:
0
6 [报告]
发表于 2003-12-26 09:49 |只看该作者

异种平台数据交互的请教

[quote]原帖由 "kxingl"]小弟昨天查看相关书籍得知:BIG_ENDIAN和LITTLE_ENDIAN好象只对存储单位大于1个字节的有影响,那我加密算法中处理“^”操作时的两个变量是U_c型的,应该没问题。也许是DES的问题(DES是一位朋友提供的),我再仔细看..........[/quote 发表:


DES 如果是自己写的,有没有注意 LE 和 BE 的问题就一定要出问题。

如果单是 ^ 操作,即使是 u_long 也不会出错。问题是 DES 进行了很多bit到bit的置换,这样问题就大了。

你可以去下一个 libdes,该实现注意了各个平台的差异。libdes中定义了一个宏,视机器的情况,或为空,或在读入四个字节的过程中,调整其次序。我曾用该实现在 X86,  ColdFire 等平台上交互,都能通。

论坛徽章:
0
7 [报告]
发表于 2003-12-26 10:28 |只看该作者

异种平台数据交互的请教

顺便问一个相对菜的问题:如果对一个字符串_c_str[20]操作中,对_c_str[-1]赋值会不会出错?

论坛徽章:
0
8 [报告]
发表于 2003-12-26 10:41 |只看该作者

异种平台数据交互的请教

_c_str 是数组的首地址,对 _c_str[-1]赋值相当于写入地址 _s_str-1,
C语言本身并不反对你这么做,这么做也不见得一定出问题,但你应该请楚自己在干什么。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2003-12-26 12:17 |只看该作者

异种平台数据交互的请教

[quote]原帖由 "kxingl"]岵换岢龃恚縖/quote 发表:

自己试一试不就知道了,不过你的这种做法
应该是绝对不能允许的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP