簡體   English   中英

為什么Node crypto為同一個字符串返回不同的值?

[英]Why does Node crypto return different values for the same 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

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

為什么不是這樣? 他們為什么不同?

它們不是同一個字符串,請參見連字符:

'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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM