2016-01-07 5 views
0

Я создаю массовый сценарий импорта пользователя в PHP для owncloud. Я читаю пользователей из файла CSV, затем добавлю их в owncloud database. Однако у меня проблема с паролями. Насколько я знаю, owncloud использует password_hash() с BCRYPT. У меня есть passwordsalt, но я не уверен, как использовать эту соль с password_hash().Настройка соли для password_hash()

Любая помощь там ребята?

+2

Bcrypt генерирует свою соль - вам не нужно его добавлять. Вам не нужно сохранять его либо в том случае, когда генерируется соль bcrypt, является частью результирующего хэша bcrypt. – JimL

+0

Это просто и даже не заслуживает ответа. Просто добавьте соль где-нибудь к паролю, который вы хешируете. В начале, в конце, или и том, и другом. Причиной этой практики является то, что люди могут создавать словари хешей для пароля, что позволяет легко находить общие пароли в украденных базах данных. СОЛЬ помогает, так как все пароли становятся уникальными, даже если это 'qwerty' – AlexanderMP

ответ

1

Использование соли в массиве опций, как этот

password_hash("rasmuslerdorf", PASSWORD_BCRYPT, array("cost" => 7, "salt" => "thisisyoursalt")); 

Но используя собственный соль не является хорошей идеей. Позвольте password_hash() создать соль для вашего пароля. password_hash() создаст различную соль для каждого пароля. Это повысит уровень безопасности паролей.

+0

Возможно, следует включить примечание о том, почему плохой идеей использовать свою соль.^ – JimL

+0

owncloud, похоже, имеет другой способ сделать это. Я получаю разные пароли, используя их соль, но я понимаю, почему не рекомендуется использовать предопределенную соль. – CaptainQuint

+0

Спасибо за ваш ответ. Я правильно ответил на ваш ответ, так как он отвечает на мои вопросы, просто не соответствует моим требованиям. Мне удалось заставить его работать, так что спасибо. – CaptainQuint

0

Если хеши производятся по password_hash() или crypt(), то соль включена в итоговое значение хэша. Чтобы проверить пароль на этот хэш, вы можете использовать функцию password_verify(), эта функция автоматически извлекает соль и другие параметры.

// Check if the hash of the entered login password, matches the stored hash. 
// The salt and the cost factor will be extracted from $existingHashFromDb. 
$isPasswordCorrect = password_verify($password, $existingHashFromDb); 
Смежные вопросы