У меня есть защищенная страница на моем сервере, и я забыл пароль к этой странице. Хорошо, я могу изменить этот пароль, но это будет хлопотно, потому что я храню этот пароль во многих системах, которые используют их для доступа к каталогу. Я вижу файл .passwords, что-то вроде

MyUserName:$ aprX8XYAJG .../O5E1

Есть ли команда на Unix, которую я могу использовать, чтобы сгенерировать эту строку mumbo jumbo для терминала, чтобы я мог сравнить оба и посмотреть, есть ли совпадение?

Я имею в виду создание файла без вмешательства или создания новых пользователей или паролей в системе.

1 ответ1

1

Ваш план сравнения хеш-функции в нескольких системах может давать или не давать желаемый результат в зависимости от происхождения хеш-функции в каждой системе.

Хэши - это выходные данные односторонней функции отображения , которая всегда (в теории) будет давать один и тот же результат для данного ввода и не будет производить ту же самую строку для любого другого ввода. Проблема заключается в том, что существует множество алгоритмов хэширования, и некоторые изменяют входные данные предсказуемым образом перед хэшированием (называемое "Salting the Hash"). Другие используют переменное количество "раундов", в которых результирующий хэш перефразируется несколько раз.

Если хеши были созданы с использованием одного и того же алгоритма хеширования, и не использовалась специфичная для машины соль, то обе системы сгенерировали бы один и тот же хеш для одного и того же пароля, и ваш план сработает.

Однако, если механизм генерации хэшей в каждом блоке различен, или они включают системный токен для соли, то нет, один и тот же пароль будет генерировать разные выходные данные хеш-функции в каждой системе, так что вы можете рассмотреть два разных хэши и не знаю, были ли они основаны на одном и том же вводе пароля.

Подробнее о том, как Linux PAM использует хэширование в /etc /passwd и /etc /shadow, смотрите здесь: https://wiki.archlinux.org/index.php/SHA_password_hashes

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .