Насколько я понимаю, пароль приходит из вашей функции входа в систему. И вы должны проверить этот пароль по хешу APR1-md5. Если на вашей странице входа нет имени пользователя, поиск будет очень трудным. Но если у вас есть имена пользователей для соответствующих паролей, это может быть достигнуто:
Предположим, что функция входа в систему отправляет два параметра: $ username и $ password. Вызовите файл паролей APRI-md5 как «password.txt». Метод, который я объясню, работает, только когда у вас есть имена пользователей в файле password.txt и имена пользователей из сценария входа в систему совпадают с именами в файле password.txt.
$apr1$z6hoasr5$0Kk7p/8Hfhy9nBxu/hFUj1
хеш пароля состоит из трех частей:
apr1
= идентификатор формата [статический, одинаковый для каждой строки пароля]
z6hoasr5
= солевой текст [различен для каждого пароля]
0Kk7p/8Hfhy9nBxu/hFUj1
= настоящая хэш-строка md5
Этот метод не может сгенерировать один и тот же пароль, даже если введенный текст одинаков, если только вы не используете тот же солевой текст. Таким образом, чтобы создать ту же хеш-строку и сравнить ее с вводом, вы должны знать, что такое солт-текст для данного пользователя.
Например, когда вы получаете $ username и $ password из сценария входа в систему, вы должны найти имя пользователя в файле password.txt. Затем вы должны извлечь текстовую часть соли из password.txt ( "z6hoasr5" в вашем примере). Затем, используя этот соленый текст и $ пароль [из логина], вы должны сгенерировать хеш APR1-md5 (Вы можете изменить http://www.php.net/manual/en/function.crypt.php#73619, чтобы ввести $ salt в качестве входного параметра. Таким образом, вы можете отправлять соль и текст и получать хэш пароля). Если пароль правильный, вновь созданная хеш-строка с использованием солт-текста в password.txt будет такой же, как и password.txt. Затем вы можете выполнить сравнение строк, чтобы проверить, действителен ли пароль.