NodeJS缓冲区在PHP中等效
NodeJS代码:
const salt = new Buffer('GHlDHToiZA1ViUu+W+EXww==', 'base64');
输出如下:
<Buffer 18 79 43 1d 3a 22 64 0d 55 89 4b be 5b e1 17 c3>
我在PHP中需要相同的输出。阅读有关PHP的pack
函数的某处,但我不知道如何使用它。
似乎您正在使用base64;在PHP你是对的pack
和unpack
是你的朋友。
例
由于饮用
$ node
> Buffer('hello world').toString('base64')
aGVsbG8gd29sZA==
用PHP
$ php -a
php > echo base64_encode('hello world');
aGVsbG8gd29ybGQ=
但如果你只是在寻找二进制文件:
由于饮用
> Buffer('hello wold')
<Buffer 68 65 6c 6c 6f 20 77 6f 6c 64>
用PHP
php > print_r(unpack('H*', 'hello world'));
Array
(
[1] => 68656c6c6f20776f726c64
)
因此,在您的实例中,您将首先解码base64,然后解压缩它。
php > $raw = base64_decode('GHlDHToiZA1ViUu+W+EXww==');
php > print_r(unpack('H*', $raw));
Array
(
[1] => 1879431d3a22640d55894bbe5be117c3
)
十分简单 ;)