0

一个简单的案例,bash 中hexdump的合适输出是什么(需要什么选项),以使其适合作为 php 中hex2bin函数的输入!
PS:我正在使用它通过网络服务流式传输证书(由 OpenSSL 命令制作)。
我已经将 PHP 更新到 5.4.0 并且我正在使用 CentOS 6

4

2 回答 2

0

hexdump -e '1/1 "%02x"'成功了。

PS 为了避免对 hexdump 二进制文件的额外依赖,您可能需要考虑为此使用 php,并编写一个从 stdin 读取并通过 bin2hex() 写出的短循环。

于 2013-06-22T13:07:50.617 回答
0

解决方案是在 bash 中删除 bash 输出的空格:

res=`xxd -p $exportedkey`
echo "${res//[[:space:]]/}"

在 php 中:

$hex = hex2bin($result);
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=hex.pfx");
header('Content-Length: '.  strlen($hex));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');

echo $hex;
exit();

希望这可以帮助其他有同样问题的人。

于 2013-06-23T11:22:10.390 回答