Хеши MD5, SHA и htpasswd
Хеши MD5 и SHA текста или файла, сверка с ожидаемым хешем и строка для .htpasswd.
Строка для .htpasswd — базовая авторизация в nginx и Apache.
MD5 и SHA-1 — только для сверки файлов: для паролей и подписей они сломаны.
Введи имя пользователя и пароль
Считается в браузере, на сервер ничего не уходит
Практика на машине
Лаба «Портал не открывается»
В терминале Linux
sha256sum ubuntu.iso
# хеш файла
sha256sum -c SHA256SUMS --ignore-missing
# сверить файлы со списком хешей
md5sum file; sha512sum file
# другие алгоритмы
htpasswd -B -C 12 /etc/nginx/.htpasswd admin
# строка bcrypt, пакет apache2-utils
Учтиecho добавляет перевод строки, и хеш выходит другим: в терминале считай через echo -n или printf.
Хеш не совпадает с терминалом
echo добавляет перевод строки: echo 'hello' | sha256sum считает хеш от «hello\n». Пиши
echo -n или включи «Перевод строки в конце». Файл из Windows (CP1251, концы строк \r\n) сверяй
в режиме «Файл».
Частые вопросы
Можно ли хранить пароли в MD5 или SHA-256?
Нет: они быстрые, видеокарта перебирает миллиарды вариантов в секунду. Пароли хранят медленными хешами с солью — bcrypt, yescrypt, Argon2.
Как проверить контрольную сумму скачанного файла?
Выбери файл и вставь хеш с сайта в «Сверить с ожидаемым»: зелёная строка — файл совпал до бита. В
терминале — sha256sum -c.
Почему строка bcrypt каждый раз новая?
В ней хранится случайная соль, поэтому один пароль даёт разные строки. Верны все: сервер берёт соль из строки.