2014-11-27 3 views
-5

Я ищу в Интернете, для какого типа алгоритма хэширования я должен использовать для хранения паролей в базе данных MySQL и для отправки сообщений подтверждения электронной почты с хеш-маркером, алгоритм должен включать: 1- не менее 14 символов случайной соли (uding udev random) 2-ключ, который будет храниться на сервере 3-timestamp 4-очень сильный и безопасный алгоритм хеширования с использованием функции hash _ *** (это лучший?)php нужен рабочий код как пример хэширования пароля

Я не нашел Elegent код workds, не могли бы вы показать мне

Спасибо

+2

Как указано в ответе на ваш предыдущий вопрос, вы должны использовать функцию PHP [password_hash()] (http://php.net/manual/en/function.password-hash.php) для генерации паролей; и [password_verify()] (http://php.net/manual/en/function.password-verify.php), чтобы проверить их; в php docs приведены примеры, показывающие, как использовать эти функции –

ответ

0

Следуйте примеры, приведенные в PHP the Right Way под password hashing:

require 'password.php'; 

$passwordHash = password_hash('secret-password', PASSWORD_DEFAULT); 

if (password_verify('bad-password', $passwordHash)) { 
    // Correct Password 
} else { 
    // Wrong password 
} 

НЕ ни при каких обстоятельствах "изобрести" свой собственный алгоритм. Это, как известно, сложно сделать правильно, и если у вас нет фона в криптографии, вы почти наверняка получите это опасно неправильно.

+0

, следует ли использовать его для токенов подтверждения электронной почты? –

+0

Подтверждающие жетоны, отправленные по электронной почте, обычно не являются атакующими, особенно если они ограничены по времени и работают только один раз. Чтобы сгенерировать их, лучший план - это полная случайная строка в 12-20 символов. Вы можете шифровать их, если хотите, это не будет плохой идеей. – tadman

+0

Не могли бы вы также объяснить, как я храню соль и ее использовать? –