为什么Nodeencryption为相同的string返回不同的值?
我正在尝试运行这个程序:
var crypto = require('crypto'); var a = crypto.createHash('md5').update('89Zr-J591').digest('hex'); var name = '89Zr−J591'; var b = crypto.createHash('md5').update(name).digest('hex'); console.log(a); //c6281bc77bea86a92df59225357b6b54 console.log(b); //a3853813486b53eca6bf7d2428876161 console.log(a === b); //false
我希望a
和b
都是true
…是一样的。
为什么不是这样? 他们为什么不同?
他们是不一样的string,看连字符:
'89Zr-J591' // ^ this is U+002D '89Zr−J591' // ^ this is U+2212
% charinfo −- U+2212 MINUS SIGN [Sm] U+002D HYPHEN-MINUS [Pd]
在第一个例子中使用了U+002D
。 当你在键盘上按下减号时,你会得到什么?
在第二个例子中使用U+2212
。