bcrypt.compare 可以接受以 NUL 字节结尾的哈希 (非规范输入)
作者: fasrm创建于 2026年4月27日更新于 2026年4月27日
bcrypt.compare() 会接受非规范的哈希字符串,如果有有效的 bcrypt 哈希后跟着一个 NUL 字节 (\x00) 和任意后缀数据,这种情况会发生,因为原生绑定将哈希传递为以 NUL 结束的 C 字符串 (encrypted.c_str()) ,因此底层的 bcrypt 实现会忽略第一个 \0 之后的所有内容。
内容来源: kelektiv/node.bcrypt.js