发送bcrypt哈希作为参数

时间:2015-03-05 07:03:49

标签: url parameters bcrypt

我想发送带有随机哈希的bcrypt哈希作为URL参数。例如

hash=$2y$10$SWNoIGJpbiBkYXMgU2Fsd.t/I3wS/nUqo5eRQp8b7oakL/kQlZ5da

所以我的问题是:

这是一个好主意还是我应该从散列中删除盐?我怎样才能做到这一点?每次分隔符都是第一个点吗?

1 个答案:

答案 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哈希:

  • 用户id
  • 重置过期时间
  • bcrypt hash

当URL到达时,解析它:

userId=johnnysmith&expirationTime=1356156000&token=%SECURITYHASH%
       ^^^^^^^^^^^                ^^^^^^^^^^       

并重新计算HMAC:

  • johnnysmith
  • 1356156000
  • johnnysmith' s bcrypt hash

如果它与传递的安全令牌匹配,则表示您有一个有效的请求。