node.JS md5加密中文与php结果不一致怎么办

作者:袖梨 2022-06-24

因项目需要,需要Node.js与PHP做接口调用,发现node.js对中文使用md5加密与php对中文md5加密的结果不同。

 

 代码如下复制代码

PHP

$str='程序员'

echo$str.' md5:'.md5($str);

?>

 

输出:

程序员 md5:72d9adf4944f23e5efde37f6364c126f

node.JS

 

 代码如下复制代码

varcrypto = require('crypto');

  

varmd5 =function(str){

 varcrypto_md5 = crypto.createHash('md5');

 crypto_md5.update(str);

 returncrypto_md5.digest('hex');

}

  

varstr ='程序员'

varresult = str +' md5:'+ md5(str);

console.log(result);

 

输出:

程序员 md5:1b6ad7846ec870e78363d1db4fb2a0ff

经查阅资料发现是编码问题,只要在node.JS中加入编码即可解决问题。

解决方法如下:

 

 代码如下复制代码

varcrypto = require('crypto');

varmd5 =function(str){

 varcrypto_md5 = crypto.createHash('md5');

 crypto_md5.update(str,'utf8');// 加入编码

 returncrypto_md5.digest('hex');

}

varstr ='程序员'

varresult = str +' md5:'+ md5(str);

console.log(result);

输出:

程序员 md5:72d9adf4944f23e5efde37f6364c126f

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助。

相关文章

精彩推荐