【问题标题】:php base64_encode result not similar to javascript encode resultphp base64_encode 结果与 javascript 编码结果不相似
【发布时间】: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


    【解决方案1】:

    这是因为 PHP 包返回字符串,而 javascript 缓冲区返回数组。

    这个答案可能会有所帮助:https://stackoverflow.com/a/41962257/3086531

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 1970-01-01
      • 2013-12-16
      • 1970-01-01
      相关资源
      最近更新 更多