怎么可以让php代码:62837 << -16 在windows和linux中得到相同的结果?

上帝爱开源 发布于 2016/06/22 17:09
阅读 173
收藏 0
PHP

进行des加密操作,发现在windows和linux里得到的结果不一样,发现是createkey过程中有这个运算,从这里开始不一样的。

网络查询得知是int溢出导致,windows下是正确的。建议通过gmp扩展来操作,但是并未找到具体用法,求指教

win的结果:-176881664

lin的结果:-759700962142060544


@eechen

加载中
1
eechen
eechen
PHP位运算我也不熟.mcrypt扩展里不是有现成的DES加密模块么?
上帝爱开源
上帝爱开源
跟java对接,扩展里的无法通用,纯php实现的都会出现这个运算,win下正常解密了,lin下从这个运算出了问题
0
纵使有花兼明月何堪无酒亦无人
纵使有花兼明月何堪无酒亦无人
win下PHP是针对X86的么?linux一般都是自己编译的,所以可以针对当前的系统。所以WIN下int溢出一般是64位的用32位的显示。
上帝爱开源
上帝爱开源
win和lin都是64位的
返回顶部
顶部