在javascript中制作md5 raw

问题描述 投票:-2回答:2

我正在将PHP代码转换为Node JS。我正面临一个问题,MD5二进制原始是MD5('String',true)和获得�S���<]zVC..zv��。我尝试过Node js,但我没有在Node js上获得相同的字符串。

请检查我的代码。

var md5 = require('md5');
var requestArray = [{
    "fname": "mobilenumber",
    "fvalue": '1234568970'
}, {
    "fname": "phone",
    "fvalue": '000000000'
}];

var post_data  = JSON.stringify(requestArray);
var m = md5(post_data);

我试图传递真正的参数,但它不起作用。请帮我

php node.js md5
2个回答
1
投票

因为你已经有了十六进制,只需使用hex2bin function

var m = hex2bin(md5(post_data)); 

/

function hex2bin (s) {
  //  discuss at: http://locutus.io/php/hex2bin/
  // original by: Dumitru Uzun (http://duzun.me)
  //   example 1: hex2bin('44696d61')
  //   returns 1: 'Dima'
  //   example 2: hex2bin('00')
  //   returns 2: '\x00'
  //   example 3: hex2bin('2f1q')
  //   returns 3: false

  var ret = []
  var i = 0
  var l

  s += ''

  for (l = s.length; i < l; i += 2) {
    var c = parseInt(s.substr(i, 1), 16)
    var k = parseInt(s.substr(i + 1, 1), 16)
    if (isNaN(c) || isNaN(k)) return false
    ret.push((c << 4) | k)
  }

  return String.fromCharCode.apply(String, ret)
}

1
投票

我在我的电脑上运行你的代码并得到结果:

'17740198bc4bb91e277091d30774b2c2'

您确定使用此代码吗?检查更新您的模块。

如果你想创建md5 bin,请尝试使用kiat-md5

var m = md5(post_data, 'binary');
// t¼K¹'pÓt²Â
© www.soinside.com 2019 - 2024. All rights reserved.