php - 求解一段16进制的字符串的验证
PHPz
PHPz 2017-04-10 15:39:43
[PHP讨论组]
D0 44 00 05 00 09 03 02 00 00 00 00 27 0D

对方告诉后最后的那个27是校验值
算法是求和
因为每个字节是8位,所以求和只要后8位,前面的不要
把27前面的数据相加,然后取后8位

PHPz
PHPz

学习是最好的投资!

全部回复(2)
大家讲道理
<?php
$string = 'D0 44 00 05 00 09 03 02 00 00 00 00';
$arr = explode(' ',$string);
$sum = 0;
for($i=0;$i<$len;$i++){
    $sum+=hexdec($arr[$i]); //先转成10进制相加
}
$sum = base_convert((string)$sum,10,16); //再转成16进制 = 127
//取后面两位
echo substr($sum,-2); // = 27
高洛峰

提供的信息太少了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号