在Javascript和PHP之间匹配MD5原始输出
我试图找到一个MD5JS库,它将返回与PHP的md5函数等价的原始散列输出。我想做的是: 在PHP中:在Javascript和PHP之间匹配MD5原始输出,javascript,php,base64,md5,Javascript,Php,Base64,Md5,我试图找到一个MD5JS库,它将返回与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�`> 在j
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(多用途Internet邮件扩展)base64用于对base64中的字符串进行编码。
3.base64_编码的数据比原始数据占用的空间多33%
在javascript中:
1.Base64是一组类似的二进制到文本编码方案,通过将二进制数据转换为基数64表示,以ASCII字符串格式表示二进制数据。
2.每个Base64位数字正好代表6位数据,这意味着3个字节可以由4个6位Base64位数字表示
3.我们可以使用btoa()和atob()可能的重复:
“这里的重要细节是字符编码。MD5和所有哈希一样,工作在二进制上,不同的编码不同”
您能澄清一下吗?