为什么Node crypto为同一个字符串返回不同的值?

时间:2016-05-07 17:22:06

标签: javascript node.js cryptography

我正在尝试运行此程序:

NSTextView

我希望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都是一样的。

为什么不是这样?他们为什么不同?

1 个答案:

答案 0 :(得分:3)

它们不是同一个字符串,请参见连字符:

'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