在Javascript和PHP之间匹配MD5原始输出

时间:2019-11-26 05:28:36

标签: javascript php base64 md5

我试图找到一个md5-js库,该库将返回与PHP的md5函数等效的原始哈希输出。我在这里要做的是:

在PHP中:

echo base64_encode(md5('city', true)); // returns TtXS6u0aH63MQa0dWO1gPg==
// here setting the second parameter as true means md5 will return the raw out which is something like N������A�X�`>

在javascript中,我正在使用两个npm软件包。一个用于md5,另一个用于Base64编码。下面是库:

  1. https://www.npmjs.com/package/blueimp-md5
  2. https://www.npmjs.com/package/js-base64n

JS代码行如下:

console.log('city: ', Base64.encode(md5('city', null, true))) // returns TsOVw5LDqsOtGh/CrcOMQcKtHVjDrWA+ 

为什么两个结果都不相同?我正在尝试找到Javascript解决方案,该解决方案将返回与php相同的结果。

1 个答案:

答案 0 :(得分:0)

在PHP中:    1.在PHP中,我们使用MIME base64编码数据。    2. MIME(多用途Internet邮件扩展)base64用于在base64中编码字符串。    3. base64_encoded数据占用的空间比原始数据多33%。

在javascript中:     1. Base64是一组类似的二进制到文本编码方案,它们通过将ASCII格式的二进制数据转换为基数64表示形式来表示二进制数据。     2.每个Base64位数正好代表6位数据,因此3个字节可以由4个6位Base64位数表示。     3.我们可以使用btoa()和atob()