2013-10-07 10 views
1

Делаю забыть функцию защиты паролем в моем веб-приложение, проблема в том, пароль храню пользователя с помощью:Как перехватить пароли Laravel?

Hash :: сделать («_ their_password_»)

Есть ли способ, чтобы повторно -hash его назад или любой рекомендуемый подход для этого?

ответ

4

Пункт хэширования пароля состоит в том, что он (предположительно) является необратимой операцией. Если ваша база данных скомпрометирована, злоумышленник получит доступ к хэшам, но не к паролям. Таким образом, злоумышленник не может войти в систему с паролями пользователей на других сайтах.

Сделайте функцию «мы сбросим ваш пароль» вместо функции «Мы отправим вам пароль».

Обратите внимание, что есть и другие best practices, которые вы абсолютно должны соблюдать в отношении хеширования паролей, чтобы убедиться, что надпись «предположительно» выше, и для дальнейшего сведения к минимуму воздействия, если ваш сайт взломан. Класс Laravel Hash, похоже, уже использует соответствующую хэш-функцию Bcrypt. Тем не менее, убедитесь, что вы используете соль, когда вы хешируете свой пароль.

+0

Laravel использует 'password_hash()', который будет использовать случайную соль, если ничего не дано. Настоятельно рекомендуется использовать случайную соль по умолчанию, сгенерированную PHP. – user1669496

1

Метод Хэша Laravel не может быть отменен.

Одним из способов шифрования является лучший способ хранения пользовательских паролей или других конфиденциальных данных.

Один из способов означает, что ваши данные могут быть преобразованы в зашифрованную строку, но из-за сложного алгоритма с мучительной математикой обращение вспять процесса невозможно. Это делает хранение паролей ударом! Ваши клиенты не должны беспокоиться о том, что вы знаете свои пароли, но вы все еще можете их сравнить (путем хэширования пароля, который они предоставляют), или при необходимости изменить пароль.

Если вам нужно обратить вспять, вы можете использовать класс Crypter.

$secret = Crypter::encrypt('I actually like Hello Kitty'); 
$decrypted_secret = Crypter::decrypt($secret); 

Подробнее о шифровании здесь http://codehappy.daylerees.com/encryption

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