为什么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
。
- 在浏览器中通过WebCryptoAPI生成ECDH密钥,而不是浏览器化的节点密码模块
- Node.js和密码安全性:三个问题
- 使用Amazon KMSencryption值,使用带有Lambda的DynamoDB存储/检索(NodeJS)
- 从node.js插入二进制到MySQL
- 'Crypto'node.js模块:找不到软件包错误的软件包主文件
- NodeJS 6encryption在贬低消息抱怨摘要?
- Node.js'crypto.createSign()的有效algorithminputstring
- Golang从NodeJS解密AES 256 CBC base64
- 使用node.js通过HTTP将文件encryption为string