Один из самых безопасных способов хранения пароля, который я нашел, заключается в следующем:
<?php
function createPasswordSalt($saltLength = 20) {
return substr(md5(uniqid(rand(), true)), 0, $saltLength);
}
function createPasswordHash($password, $salt = null, $staticKey = null) {
if ($staticKey === null) {
$staticKey = "Some passphrase that will be only in your php script";
}
if ($salt === null) {
$salt = self::createPasswordSalt();
}
return hash_hmac('sha512', $password . $salt, $staticKey);
}
И я храню в базе данных пароль и хэш ...
Так что здесь я использовал несколькоуровни безопасности.И взломать ваши пароли можно, только если он соберет вашу базу данных и php-скрипты.В любом случае, если у хакера есть ваши скрипты, он может взломать любой ваш пароль в вашей базе данных, поскольку он знает схему, которую вы используете для хэширования паролей.