nodejs在进行md5加密时,发现同样的密文在,php 和nodejs中加密后的密文竟然不一样
查其原因,nodejs在进行md5 时,中文没有转换成二进制编码,通过增加中间处理过程把字符串强制转换成二进制编码解决问题!!
function md5(data) {
var Buffer = require("buffer").Buffer;
var buf = new Buffer(data);
var str = buf.toString("binary");
var crypto = require("crypto");
return crypto.createHash("md5").update(str).digest("hex");
}
除此之外还有更简单的:
md5.update(stringToSign, 'utf8'); //直接转成utf8
以上更简单~~~