2015-03-05 2 views
0

Я хочу отправить хэширование bcrypt со случайным хешем в качестве параметра URL. НапримерОтправить bcrypt hash как параметр

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

Так что мои вопросы:

Является ли это хорошая идея, или я должен удалить соль из хэша? Как я могу это сделать? Является ли первая точка точкой разграничителя?

+0

Или использовать md5 ()? – user3388366

ответ

0

Вы действительно не должны ставить кого-то пароль BCrypt'd на провод. Несмотря на то, что BCrypt трудно грубой силой; лучше не делать проще для того, чтобы кто-то его освободил.

Я предлагаю, как user33888366, что если вам нужен токен безопасности, используйте HMAC значений в URL-адресе.

Прочтите Life in a post-database world: using crypto to avoid DB writes примеры использования криптографии, чтобы доверять вашим URL-адресам.

короткая версия

http://myapp.com/resetPassword?userId=johnnysmith&expirationTime=1356156000&token=%SECURITYHASH% 

где %SecurityHash% является в HMAC хэш:

  • USERID
  • Время истечения сброса
  • Bcrypt хэш

Когда URL приходит его , разобрать его:

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

и пересчитать HMAC из:

  • johnnysmith
  • johnnysmith в Bcrypt хэш

, если он соответствует переданному маркер безопасности, вы знаете, что имеют действительный запрос.

Смежные вопросы