Предыдущие вопросы SF, которые я видел, привели к ответам, которые дают хешированный пароль MD5
У кого-нибудь есть предложения по созданию хешированного пароля SHA-512? Я предпочел бы один вкладыш вместо сценария, но, если сценарий является единственным решением, это тоже хорошо.
Обновить
Замена предыдущих версий py2 на эту:
python3 -c "import crypt;print(crypt.crypt(input('clear-text pw: '), crypt.mksalt(crypt.METHOD_SHA512)))"
linux
authentication
encryption
md5
Бельмин Фернандес
источник
источник
man 5 shadow
называет его «зашифрованным паролем», поэтому я согласился с этим термином./etc/shadow
содержимое. Вы увидите$x$salt$hash
.x
Обозначает используемый алгоритмcrypt
,6
типичный для современных Linux, который называется sha512 (см.man 3 crypt
). Любой из приведенных ниже ответов даст одинаковый хеш, если вы дадите ему одинаковую соль.Ответы:
Вот один вкладыш:
Python 3.3+ включает
mksalt
в себя crypt , что значительно упрощает (и делает его более безопасным) использование:Если вы не предоставите аргумент , чтобы
crypt.mksalt
(он мог принятьcrypt.METHOD_CRYPT
,...MD5
,SHA256
, иSHA512
), он будет использовать самый сильный доступный.Идентификатор хэша (число после первого
$
) связан с используемым методом:Я бы порекомендовал вам посмотреть, что такое соли и что такое, и, согласно мелким заявкам, прокомментируйте разницу между шифрованием и хэшированием.
Обновление 1: созданная строка подходит для сценариев shadow и kickstart. Обновление 2: Предупреждение. Если вы используете Mac, посмотрите комментарий об использовании этого в python на Mac, где он не работает должным образом.
источник
random_salt
фактической случайной солью.$6asQOJRqB1i2
- это не кажется достаточно длинным, чтобы быть правильным!python -c 'import crypt; print crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512))'
crypt.crypt("test", "$6$rounds=200000$random_salt")
. 200000 занимает около 100 мс на моем текущем ноутбуке.В Debian вы можете использовать mkpasswd для создания паролей с разными алгоритмами хеширования, подходящими для / etc / shadow. В комплект входит whois (согласно apt-файлу)
чтобы получить список доступных алгоритмов хеширования, введите:
НТН
источник
mkpasswd
Под Fedora тоже есть программа (часть ожидаемого), но для этой цели она бесполезна.mkpasswd
он говорит, предназначена для Debian / Ubuntu. Наmkpasswd
Fedora (по крайней мере, до 14) отсутствует-m
переключатель.dpkg -S /usr/bin/mkpasswd
я сам не мог в это поверить: Droot:$6$AbCdE$xyz:...
следует использовать:mkpasswd -m sha-512 -S AbCdE
. С правильным паролем вы должны получить тот же хеш.Лучший ответ: grub-crypt
источник
grub-crypt
команду, это действительно самый надежный и удобный способ сделать это. Нет смысла играть с солями вручную, когда ты можешь это испортить. Проблема в том, что все больше и больше современных систем имеют GRUB2 и поэтому не будут включать эту команду.Вот краткий C-код для генерации пароля SHA-512 в различных ОС Unix.
Файл:
passwd-sha512.c
Скомпилировать:
использование:
источник
Однострочное решение Perl для создания хешированного пароля SHA-512:
perl -le 'print crypt "desiredPassword", "\$6\$customSalt\$"'
Работал на RHEL 6
источник
Почему бы не выполнить следующую проверку и модификацию машин Centos / RHEL, чтобы убедиться, что все хэши паролей для / etc / shadow выполняются с помощью sha512. Тогда вы можете просто установить ваш passworkd с помощью команды passwd
источник
Вот строка, в которой используются команды оболочки для создания хэшированного пароля SHA-512 со случайной солью:
Примечания
источник
whois
пакет из Fedora 18 не предоставляетmkpasswd
.Прочитайте комментарий ниже, чтобы узнать о последствиях этого ответа для безопасности.
Для тех, кто настроен на Ruby, вот одна строка:
источник
Этот скрипт работал для меня в Ubuntu 12.04 LTS: https://gist.github.com/JensRantil/ac691a4854a4f6cb4bd9
Он имеет следующие особенности, которых нет в некоторых других альтернативах:
источник
chpasswd
в вашей системе.Алгоритмы HASH предназначены для создания дайджестов MESSAGE, они никогда не подходят для паролей, которые должны использовать какой-то HKDF ( http://tools.ietf.org/rfc/rfc5869.txt ) - см. PBKDF2 или BCrypt
источник
man crypt
говорит мне, что PBKDF2 не поддерживается.Вы можете клонировать его из моего репозитория github, если хотите: https://github.com/antoncohen/mksha
источник
Это не один лайнер, но это может помочь кому-то:
источник
random
не криптографически безопасен,os.urandom
должен использоваться. 8 символов из 56-символьного словаря тоже слишком мало. Конкатенация жала снова и снова в python тоже плохая форма (она имеет сложность O (n ^ 2))Очевидно, что вы просто захватываете 2-е поле и можете удалить файл, как только добавите его в shadow или для использования с sudo (по-прежнему наиболее вероятно shadow).
источник
Взгляните на справочную страницу для crypt (3), и я думаю, что вы обнаружите, что инструмент crypt был обновлен для использования glibc и sha256 (5 долларов) и sha512 (6 долларов), многократных раундов, гораздо большей соли и т. Д. ,
Очевидно, что SHA512 относится к тому, как работает / etc / shadow.
Тем не менее, эта веб-страница была очень полезной - в частности, MKPASSWD, так как это решило мою проблему.
Учитывая потенциально «потерянный» пароль, я могу использовать MKPASSWD и соль для генерации хэша SHA512 и подтверждения / отклонения списка возможных паролей.
Я бы использовал Джона Потрошителя - но, по крайней мере, на моем оборудовании (Raspberry Pi) и моем бюджете (ничего) - Джон не может этого сделать (кажется, что он не поддерживает расширенные функции crypt / glibc в бесплатной версии raspbian.
Имейте в виду, поскольку у меня достаточно разрешений на чтение / запись / etc / shadow, я МОГУ просто перезаписать хеш и продолжить жизнь ... это академическое упражнение.
ПРИМЕЧАНИЯ Примечания Glibc Версия этой функции для glibc2 поддерживает дополнительные алгоритмы шифрования.
источник
Если вам нужна альтернатива однострочным текстам, написанным на perl / python, mkpasswd подойдет. Хотя он включен в пакет Whois Debian, он отсутствует в системах CentOS / RHEL. Я изменил версию mkpasswd для Debian и включил более мощный механизм генерации соли, основанный на OpenSSL. Полученный двоичный файл полностью сохраняет все параметры командной строки версии Debian. Код доступен на github и должен компилироваться на любой вкус Linux: mkpasswd
источник
Я не уверен, как SHA-512 связан с
/etc/shadow
. Эти паролиcrypt
ред.Но если вы хотите, чтобы с помощью SHA-512 хешировали пароль, вы можете сделать это с помощью
echo -n the_password | sha512sum
. Вы не можете использовать вывод для / etc / shadow.источник
echo -n the_password
так что вы не хэшируете новую строку. </shadow
уже не crypt () с годами. Современные системы используют как минимум md5.shadow
все ещеcrypt()
редактируются, но функция была обновлена для поддержки нескольких различных алгоритмов. Несмотря на это, метод, описанный в этом ответе, не создает подходящий хеш для/etc/shadow
. Алгоритм является более сложным, чем один хэш-цикл SHA-512.