Краткий ответ: Вы не можете.Могу ли я порекомендовать этот подход вместо ?
Более длинный ответ (отрывок из этой статьи , которая объясняет разработчикам термины криптографии):
Многие разработчики считают, что пароли должны быть зашифрованы , но это неверно. Пароли должны быть хешированы , не зашифрованы.Кроме того, не путайте алгоритмы хеширования паролей с простыми криптографическими хеш-функциями.Это не одно и то же:
В отличие от криптографических хэшей, хэши паролей требуют более одного входного параметра.Но в отличие от алгоритмов шифрования, хэши паролей являются односторонними детерминированными вычислениями ловушек.Кроме того, в отличие от шифрования с секретным ключом, соль не должна оставаться секретной;он просто должен быть уникальным для каждого пользователя.Назначение уникальной соли для каждого пользователя состоит в том, чтобы помешать предварительным вычислениям и сделать пароли из списка хеш-кодов более грубыми.
Функция hash_pbkdf2()
является типом хэш-функции.поэтому вы не можете расшифровать его .
Более того, имя алгоритма, которое он использует, - PBKDF2, или P assword- B ased K EY D Erivation F Unction # 2 .Он был разработан для того, чтобы превратить пароль (низкоэнтропийный вводимый человеком и запоминаемый человеком ввод) в защищенный криптографический ключ.То, как это было сделано под колпаком, привело к тому, что многие люди использовали PBKDF2 в качестве хэша пароля.
Хотя между KDF и алгоритмами хэширования паролей есть некоторые ключевые различия, ради this ответ, они по сути тот же тип алгоритма .
Итак, ответ на вопрос "как [расшифровать] этот вывод PBKDF2?"is: Вы не можете.
Хеш-функции являются односторонними.Существуют бесконечные входные данные, которые могут генерировать любой заданный хэш-вывод, но поскольку пространство ключей вывода настолько обширно с безопасными хеш-функциями, вычислительно невозможно создать конфликт.
Это также верно для хеш-функций пароля (и ключафункции деривации), кроме усугубленных:
- Соль
- Итерированное хеширование
- (В некоторых случаях) алгоритмы с жесткой памятью, которые затрудняют выполнение атака перебором с использованием параллельной обработки.
Решение состоит в том, чтобы использовать правильный инструмент для задания .И если вы не знаете, что это такое, начните здесь , чтобы вы поняли условия, тогда посмотрите этот ответ, например, код .