2013-07-03 137 views
0

余米试图比较从使用加密的NodeJS模块的PBKDF2sync功能与一个商店我的数据库中创建的密码的哈希“===”。但是我变得虚假了。我已经使用console.log检查了两者的盐是平等的,但仍然显示错误。我不明白发生了什么?比较哈希

当我尝试CONSOLE.LOG从PBKSF2sync功能我得到这个东西的哈希我的终端

<SlowBuffer bf 36 32 7e b8 8e 6d a7 8f 8a 9d cb 7e 99 11 47 a7 17 80 17 df ef 8b b4 36 f1 18 1d c5 de ab 1e b3 69 f1 2f 1a 20 09 1f e6 2c c6 2e e9 ca 1f 5a 58 19 46 ...> 

上这是为什么我收到错误的原因。请帮帮我。

回答

1

的===也使得确保两个数据类型精确匹配,因此,如果说一个是缓冲区,另一个是(类型)阵列,那么这些可能有类似的内容,但仍无法进行比较。

您既可以使用==来比较,这将尝试都转换为匹配的类型,但不安全因而散列操作不建议,或者你只是比较之前都转换为同一类型。

1

的问题是,我是在存储数据库中的密码为PBKDF2sync函数返回我一个缓冲。所以===不能正常工作。由于一些读数我做我想通了,并返回PBKDF2之后我只是用它.toString()和它的工作。

希望这可以解决任何人可能在同一主题上遇到的任何问题。