【发布时间】:2017-11-18 07:39:33
【问题描述】:
代码sn-ps:
php:
$shaVal = '59bc125840733ea828f42e276661b01e177f1414';
$enc = base64_encode(pack('H*', $shaVal));
echo $enc;
//prints => WbwSWEBzPqgo9C4nZmGwHhd/FBQ=
在 Javascipt 中我使用了 buffer npm 模块
let Buffer = require('buffer').Buffer;
let shaVal = '59bc125840733ea828f42e276661b01e177f1414';
//function similar to php's pack() and returns binary data
let bData = Buffer.from(shaVal, 'hex').toString();
console.log('bData ', bData)
//encode with base64
let val64 = Buffer.from(bData, 'binary').toString('base64');
console.log('base 64 encode ', val64)
//prints => Wf0SWEBzPv0o/S4nZmH9Hhd/FBQ=
我怎样才能得到 php 打印的完全相同的输出?
注意:两个选项都将二进制数据显示为 Y�X@s>�(�.'fa�
【问题讨论】:
标签: javascript php node.js