当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2018-08-03 16:57:08 浏览: 评论:0 

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

  1. <?php 
  2. $str='程序员' 
  3. echo$str.' md5:'.md5($str); 
  4. ?> 

输出:

程序员 md5:72d9adf4944f23e5efde37f6364c126f

node.JS

  1. varcrypto = require('crypto'); 
  2.    
  3. varmd5 =function(str){ 
  4.  varcrypto_md5 = crypto.createHash('md5'); 
  5.  crypto_md5.update(str); 
  6.  returncrypto_md5.digest('hex'); 
  7.    
  8. varstr ='程序员' 
  9. varresult = str +' md5:'+ md5(str); 
  10. console.log(result); 

输出:

程序员 md5:1b6ad7846ec870e78363d1db4fb2a0ff

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

解决方法如下:

  1. varcrypto = require('crypto'); 
  2. varmd5 =function(str){ 
  3.  varcrypto_md5 = crypto.createHash('md5'); 
  4.  crypto_md5.update(str,'utf8');// 加入编码 
  5.  returncrypto_md5.digest('hex'); 
  6. varstr ='程序员' 
  7. varresult = str +' md5:'+ md5(str); 
  8. console.log(result); 

输出:

程序员 md5:72d9adf4944f23e5efde37f6364c126f

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

Tags: 中文 怎么办 结果

分享到: