Я зашифровал строку с помощью функции PHP hash_pbkdf2. Просмотрите приведенный ниже код:
$password = "password";
$iterations = 10000;
$salt = 1111;
$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 20);
The result of hash value "61ea90120ac05230465c"
В шифровании все работает нормально.
Пожалуйста, дайте мне знать, как уменьшить значение "61ea90120ac05230465c" и получить результат "пароль"
хеш-функция не может расшифровать. это односторонняя функция. если вам нужно зашифровать и расшифровать, тогда используйте A3 (шифр шифрования), но это плохой способ для пароля
если вы думаете, что этот хеш можно легко «расшифровать» - зачем вам тогда его использовать?






Краткий ответ: нельзя. Могу я порекомендовать этот подход вместо?
Более длинный ответ (отрывок из эта статья, в котором разработчикам разъясняются термины криптографии):
Many developers think passwords should be encrypted, but this is false. Passwords should be hashed, not encrypted. Furthermore, don't confuse password hashing algorithms with simple cryptographic hash functions. They're not the same thing:
Unlike cryptographic hashes, password hashes require more than one input parameter. But unlike encryption algorithms, password hashes are one-way deterministic trap door calculations. Also unlike secret-key encryption, the salt does not need to remain secret; it merely needs to be unique per user. The purpose of a unique salt per user is to thwart pre-computation and to make brute-force guessing passwords from a list of hashes more expensive.
Функция hash_pbkdf2() является разновидностью хэш-функции, поэтому вы не можете расшифровать это.
Кроме того, имя используемого алгоритма - PBKDF2 или пassword-Based Key Derivation FRunction # 2. Он был разработан, чтобы превратить пароль (низкоэнтропийный ввод, созданный человеком и запоминаемый человеком) в безопасный криптографический ключ. То, как это делается под капотом, заставило многих людей использовать PBKDF2 в качестве хэша пароля.
Хотя есть некоторые ключевые различия между KDF и алгоритмами хеширования паролей, ради ответа это они по сути тот же тип алгоритма.
Итак, ответ на вопрос «как [расшифровать] этот вывод PBKDF2?» это: Вы не можете.
Хеш-функции односторонние. Существует бесконечное количество входных данных, которые могут производить любой заданный хэш-выход, но поскольку пространство выходных ключей настолько обширно с безопасными хеш-функциями, генерировать коллизию с вычислительной точки зрения невозможно.
Это также верно для функций хеширования паролей (и функций получения ключей), за исключением того, что усугубляется:
Решение - используйте правильный инструмент для работы. И если вы не знаете, что это такое, Начните здесь, чтобы вы понимали термины, тогда см. этот ответ, например, код.