有人可以解释一下php的包装,以及我如何在java

时间:2017-01-12 16:33:43

标签: java php

我正在尝试将php中的一段代码移动到编码有效负载的java,但我无法理解php究竟在做什么以及如何用Java实现它。

我在php中有如下行:

pack('H12CCVV', $id, $x, $y, $z, $w);

从阅读php和珍珠文档我认为这是对十六进制前12个字符和2个无符号字符然后2个无符号短裤,但我不确定这种理解我是否正确。我发现以下情况属实:

pack('H12', $id) == pack('H12', $id, $x, $y, $z, $w);

让我相信$x& $y编码为C,即unsigned char和$z& $w被编码为V,即无符号短。

我也相信(但不是100%并且不知道我可以如何验证)

php中的

pack('H*', $id)与java中的DatatypeConverter.printHexBinary(id.getBytes())相同

它只是: 1 - 将Id的前12个字符的十六进制作为字符串 2 - 附加字符串X& ÿ 3 - 附加字符串短的Z& w ^ ?

如果不是我应该如何处理它?<​​/ p>

最后,如果有人可以帮我弄清楚如何验证,我正在使用PhpStorm和Intellij CE,所以我可以调试但是我不能直接将pack的值复制为字符串,因为编码会导致问题,例如:

pack('H12CCVV', $id, $x, $y, $z, $w);

在phpstorm的调试器变量中产生以下结果: enter image description here

0 个答案:

没有答案