如何避免bcrypt-node向URL字符串哈希添加斜杠?

问题描述 投票:0回答:1

我正在使用brypt-nodejs生成哈希,但有时它会在它生成的字符串中添加斜杠,如下所示,当我尝试通过URL发送时,这给我带来了困难。

$12$G/KJOwTBLjGwcnAGaTlJMnAnkXa6/M1jt8FppD

bcrypt中是否有一个设置会生成没有斜线的哈希,或者我应该手动删除它们还是用一些不太可能的模式替换(例如slashslash)以便能够恢复它的出现,如果出现的话?

$12$GslashslashKJOwTBLjGwcnAGaTlJMnAnkXa6slashslashM1jt8FppD

感谢您让我知道您的想法!

node.js encryption bcrypt
1个回答
1
投票

你可以用/替换另一个字符串,例如“slash”

这是接收它后处理哈希的方法:

 hash.replace(/\//g, "slash");

要比较你必须将“斜杠”转换回/

.compare(user.id, req.params.secretToken.replace(/slash/g, "/"))

0
投票

TLDR;你不能。

bcrypt跟随modular crypt format。将其更改为使用除斜杠之外的其他内容将使哈希与其他实现不兼容。 bcrypt哈希是base64编码的,其中包含/在其charset中。

或者,您可以对生成的哈希进行手动转换,或使用替换/替换其他内容的base_64编码构建您自己的实现。

© www.soinside.com 2019 - 2024. All rights reserved.