Документов (http://php.net/manual/de/function.crypt.php) для склепе функции() показывает следующий пример для хэша MD5:PHP склеп() - Возвращается md5 хэш
$1$rasmusle$rISCgZzpwk3UhDidwXvin0
Я понимаю, что "$ 1 $" являются префиксом, который содержит информацию о том, что хэш является хешем MD5.
Но как остальная часть строки MD5-хэш? Обычно это должна быть строка с 32 символами (0-9, a-f), правильно?
Я уверен, это глупый вопрос, но я все еще хочу спросить.
Что вы ожидаете, это строка в шестнадцатеричном кодировании, то, что вы получили, является строкой, кодированной base64. Оба они представляют двоичный вывод функции хеширования. Также: '$ ID $ SALT $ HASH' То, что вы должны * использовать *, - [' password_hash() '] (http://php.net/manual/en/function.password-hash.php) и, безусловно, не MD5. – Sammitch
@Sammitch Пока 'password_hash()' определенно лучше, чем 'crypt()', он недоступен до PHP 5.5. Например, я все еще обновляю несколько сайтов с помощью PHP 5.3 или 5.4, и я определенно хотел бы использовать 'password_hash()' там. – Pietu1998
@ Pietu1998 - существует [пользовательская реализация password_ *] (https://github.com/ircmaxell/password_compat) для версий PHP от 5.3.7 вверх –