首页 > 解决方案 > 在 Javascript 和 PHP 之间匹配 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 相同的结果。

标签: javascriptphpbase64md5

解决方案


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

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


推荐阅读