PHP 中的 NodeJS 缓冲区等效项

Man*_*gir 4 php buffer node.js

NodeJS代码:

const salt = new Buffer('GHlDHToiZA1ViUu+W+EXww==', 'base64');
Run Code Online (Sandbox Code Playgroud)

输出如下:

<Buffer 18 79 43 1d 3a 22 64 0d 55 89 4b be 5b e1 17 c3>
Run Code Online (Sandbox Code Playgroud)

我需要在 PHP 中得到相同的输出。读过一些关于 PHPpack函数的文章,但我不知道如何使用它。

Kat*_*yuu 5

看来您正在使用 base64;在php中你是对的pack并且unpack是你的朋友。

例子

在节点中

$ node
> Buffer('hello world').toString('base64')
aGVsbG8gd29sZA==
Run Code Online (Sandbox Code Playgroud)

在 PHP 中

$ php -a
php > echo base64_encode('hello world');
aGVsbG8gd29ybGQ=
Run Code Online (Sandbox Code Playgroud)

但如果您只是寻找二进制文件:

在节点中

> Buffer('hello wold')
<Buffer 68 65 6c 6c 6f 20 77 6f 6c 64>
Run Code Online (Sandbox Code Playgroud)

在 PHP 中

php > print_r(unpack('H*', 'hello world'));
Array
(
    [1] => 68656c6c6f20776f726c64
)
Run Code Online (Sandbox Code Playgroud)

因此,在您的实例中,您将首先解码 Base64,然后解压它。

php > $raw = base64_decode('GHlDHToiZA1ViUu+W+EXww==');
php > print_r(unpack('H*', $raw));
Array
(
    [1] => 1879431d3a22640d55894bbe5be117c3
)
Run Code Online (Sandbox Code Playgroud)

十分简单 ;)