900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > des加密解密算法 – 怎么可以让php代码:62837

des加密解密算法 – 怎么可以让php代码:62837

时间:2021-10-09 18:51:12

相关推荐

des加密解密算法 – 怎么可以让php代码:62837

后端开发|php教程

php,des加密解密算法,des

后端开发-php教程

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

织梦商业版源码,ubuntu停止命令运行,requests爬虫模拟登录,php下拉菜,山东谷歌seolzw

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

物业管理手机网页源码,ubuntu中瓜子皮,16g内存3个tomcat,shell脚本重启爬虫,php怎么连接已有的数据库,承德优化seolzw

win的结果:-176881664

lin的结果:-759700962142060544

淘宝客网址导航源码,vscode 画图插件,ubuntu安装h750阵列卡,tomcat 无法登录,sqlite获取新增id,手机版日期插件,前端框架放弃html常规用法,网络爬虫的负面问题,php可视编辑,站长学习seo,网站源代码找邮箱,网页头部显示时间代码,ug帝国编程模板lzw

@eechen

回复内容:

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

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

win的结果:-176881664

lin的结果:-759700962142060544

@eechen

恭喜你掉到php的一个大坑了。

就是这个问题导致了各种匪夷所思的问题。

引用php原文

然而,你出现此问题是因为你两个系统的long型(php的int型在内核中均为long型)长度不一致(因为系统位数不一样)。

所以,你如要想解决此问题,就必须手动处理int到uint。

$flag=$int&0x80000000;//取出符号位,判断是否是负数,溢出int范围,但没溢出uint范围时,符号位为1,即为负数if($flag){ $int ^= 0xffffffff; $int += 1;}

BTW,最新的php7修正了此问题,但php中无法移位一个负数。

不知道这段代码是从何而来的,左右移负数的代码是由CPU完成运算的,所以这里完全依赖机器,与系统关系都不大,看看能不能修正这段代码,或者只能是使用其他方法来代替左右移负数了。

所以从 php7 开始,位移一个负数会直接报错…

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。