javascript - 在 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 编码。以下是图书馆:
JS代码行如下:
console.log('city: ', Base64.encode(md5('city', null, true))) // returns TsOVw5LDqsOtGh/CrcOMQcKtHVjDrWA+
为什么两个结果不相同?我正在尝试在 Javascript 中找到一个解决方案,它将返回与 php 相同的结果。
解决方案
在 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()
推荐阅读
- python - 计算列中gps坐标之间的距离
- python - 使用 pdf2image 将 PDF 转换为图像不起作用
- gradle - 如何将子项目生成的类添加到 Gradle 中 WAR 文件的 WEB-INF/classes 目录
- android - 长度过滤器不适用于 textview ?- 安卓
- typescript - api 数据验证的最佳实践
- python - 在 Python Clicker 游戏中每秒添加硬币
- amazon-web-services - 使用 AWS cli 所需的 Amazon EMR 集群详细信息
- python - 在元数据之后检测 CSV 的开头
- reactjs - 从子组件访问 NextJs Link href 属性
- mysql - 这个查询不好吗?MySql 一对多与左连接和嵌套查询