用php计算CRC16 X25
我需要帮助计算CRC X25变量,我有一个Java工具,也有一个在线工具,可以提供正确的转换,但我自己还不能复制它 字符串:4040290003323334C323031373030313839336000000000009001FFFFFF0000D656B759 输入类型:十六进制->计算CRC16用php计算CRC16 X25,php,crc,Php,Crc,我需要帮助计算CRC X25变量,我有一个Java工具,也有一个在线工具,可以提供正确的转换,但我自己还不能复制它 字符串:4040290003323334C323031373030313839336000000000009001FFFFFF0000D656B759 输入类型:十六进制->计算CRC16 Result: CRC-16/X-25 0x6C49 <-- this is the value im trying to get in php from that string a
Result: CRC-16/X-25
0x6C49 <-- this is the value im trying to get in php from that string above.
这给了我如下的结果
ComputeCrc(str_split("40402900033231334C323031373030313839360000000000009001FFFFFFFF0000D656B759", 2));
Result = ec71 <-- decHex result
calculate("40402900033231334C323031373030313839360000000000009001FFFFFFFF0000D656B759");
Result = 48d7; <-- decHex result
ComputeCrc(str_split(“4040290003323334c23031373030313839336000000000009001ffffff0000d656b759”,2));
结果=ec71在计算前应用hexdec解决了该问题,可能在将来有用
public static function ComputeCrc($data) {
$crc = 0xFFFF;
foreach ($data as $d) {
$d = hexdec($d); <-- This did the trick
$crc = self::$CRC16_Table[($d ^ $crc) & 0xFF] ^ ($crc >> 8 & 0xFF);
}
$crc = $crc ^ 0xFFFF;
$crc = $crc & 0xFFFF;
return $crc;
}
公共静态函数ComputeCrc($data){
$crc=0xFFFF;
foreach($d数据){
$d=hexdec($d);>8&0xFF);
}
$crc=$crc^0xFFFF;
$crc=$crc&0xFFFF;
返回$crc;
}
public static function ComputeCrc($data) {
$crc = 0xFFFF;
foreach ($data as $d) {
$d = hexdec($d); <-- This did the trick
$crc = self::$CRC16_Table[($d ^ $crc) & 0xFF] ^ ($crc >> 8 & 0xFF);
}
$crc = $crc ^ 0xFFFF;
$crc = $crc & 0xFFFF;
return $crc;
}