建议和反馈

请填写你的反馈内容

问答 > 密码学 > 问答详情
已解决

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

我正在尝试运行此程序:

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

我希望ab都是true ......是一样的。

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


2020-01-14
0
请先登陆或注册

海贼 king2020-01-14

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

'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 。


投一票
评论(0)
赞赏(0)

求助中

解决了这个问题,预计可以帮助到

  • 0
  • 2
  • 5
  • 8
  • 0
邀请

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励