求解16进制字符串的验证的方法:首先使用【hexdec($arr[$i]);】转成10进制相加;然后通过【base_convert((string)$sum,10,16);】转成16进制;最后使用【substr】方法进行求解即可。

如何求解16进制字符串的验证?
问题:
D0 44 00 05 00 09 03 02 00 00 00 00 27 0D
对方告诉后最后的那个27是校验值
算法是求和
求解一段16进制的字符串的验证
因为每个字节是8位,所以求和只要后8位,前面的不要
把27前面的数据相加,然后取后8位
方法:
<?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中文网!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号