我想发送带有随机哈希的bcrypt哈希作为URL参数。例如
hash=$2y$10$SWNoIGJpbiBkYXMgU2Fsd.t/I3wS/nUqo5eRQp8b7oakL/kQlZ5da
所以我的问题是:
这是一个好主意还是我应该从散列中删除盐?我怎样才能做到这一点?每次分隔符都是第一个点吗?
答案 0 :(得分:0)
你真的不应该把某人BCrypt密码丢掉。即使BCrypt难以暴力;最好不要让某人更容易让某人得到它。
我建议,正如user33888366所做的那样,如果您需要一种安全令牌,请在网址中使用值的HMAC。
请阅读Life in a post-database world: using crypto to avoid DB writes,了解使用加密来信任您的网址的示例。
http://myapp.com/resetPassword?userId=johnnysmith&expirationTime=1356156000&token=%SECURITYHASH%
其中%SecurityHash%
是HMAC哈希:
当URL到达时,解析它:
userId=johnnysmith&expirationTime=1356156000&token=%SECURITYHASH%
^^^^^^^^^^^ ^^^^^^^^^^
并重新计算HMAC:
如果它与传递的安全令牌匹配,则表示您有一个有效的请求。