在 JavaScript 中制作原始 MD5
Make MD5 raw in JavaScript
我正在将 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);
我尝试传递 true 参数,但它不起作用。
我运行你的代码在我的电脑里,结果是:
'17740198bc4bb91e277091d30774b2c2'
您确定使用此代码吗?
检查更新您的模块。
如果要创建 md5 bin,请尝试使用 kiat-md5
var m = md5(post_data, 'binary');
// t¼K¹'pÓt²Â
因为您已经有了十六进制,只需使用 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)
}
我正在将 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);
我尝试传递 true 参数,但它不起作用。
我运行你的代码在我的电脑里,结果是:
'17740198bc4bb91e277091d30774b2c2'
您确定使用此代码吗? 检查更新您的模块。
如果要创建 md5 bin,请尝试使用 kiat-md5
var m = md5(post_data, 'binary');
// t¼K¹'pÓt²Â
因为您已经有了十六进制,只需使用 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)
}