比较移动应用程序中的BCrypt-ed密码

时间:2012-10-10 07:05:31

标签: c# security bcrypt

我想与一些安全专家验证这一点。

我有一个网络应用程序,我注册用户。我为每个用户使用一个独特的盐为pw加密,并将散列的pw存储到DB中。

我现在需要通过移动应用验证用户身份。我不能使用ssl,我宁愿避免在移动设备和我的网络服务器之间传递密码。所以在调用服务器上的登录方法(通过RESTful API)之前,我更喜欢在移动设备上对BC进行BCrypt,然后通过API将其散列到服务器进行比较。

关键是在移动设备上我必须使用相同的盐进行BCrypt(据我所知,我无法比较两种不同盐的BC化的pw)。

所以问题是:

是否合适
  1. Mobile向用户X询问盐到服务器(我得到前22个字符加上数据库中存储的pw的偏移量)
  2. 在移动设备上我用盐点到了第1点
  3. 最后,移动电话在服务器上调用login(用户名,hashedpw)。
  4. 如上所述,所有通信都是普通的http,没有SSL。

    这有意义吗?

1 个答案:

答案 0 :(得分:2)

在您的方案中,“hashedpw”成为一个简单的密码,然后您可以将其存储在未加密的数据库中。

所有需要登录服务器的人都知道(例如,拦截)哈希值和用户名。在您的实现中,散列与安全性无关,它更多地是对最终用户的内存辅助,但不提供任何安全性好处。