Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript和PHP之间匹配MD5原始输出_Javascript_Php_Base64_Md5 - Fatal编程技术网

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

在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

我试图找到一个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�`>
在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和所有哈希一样,工作在二进制上,不同的编码不同”
    您能澄清一下吗?