Получить хэш пароля linux

/etc/shadow – HowTo: Generate Password Hash in Linux

Linux stores users’ encrypted passwords, as well as other security information, such as account or password expiration values, in the /etc/shadow file.

Someday you may need to edit the /etc/shadow file manually to set or change ones password.

Unlike the /etc/passwd that is readable for everyone, the /etc/shadow file MUST be readable by the ROOT user only.

For this you would have to generate password hash in the format compatible with /etc/shadow .

Cool Tip: Want to create a USER with ROOT privileges? This can be very dangerous! But if you insist… Read more →

There is no need to install any additional tools as it can be easily done from the Linux command line using Python.

Generate Password Hash for /etc/shadow

The $ID indicates the type of encryption, the $SALT is a random (up to 16 characters) string and $ENCRYPTED is a password’s hash.

Hash Type ID Hash Length
MD5 $1 22 characters
SHA-256 $5 43 characters
SHA-512 $6 86 characters

Cool Tip: Got a hash but don’t know what type is it? Find out how to easily identify different hash types! Read more →

Use the below commands from the Linux shell to generate hashed password for /etc/shadow with the random salt.

Generate MD5 password hash:

python -c "import random,string,crypt; randomsalt = ''.join(random.sample(string.ascii_letters,8)); print crypt.crypt('MySecretPassword', '\$1\$%s\$' % randomsalt)" --- $1$YjOzcqrf$Zqx4sx5CQRuEIFCdOLAJV0

Generate SHA-256 password hash:

python -c "import random,string,crypt; randomsalt = ''.join(random.sample(string.ascii_letters,8)); print crypt.crypt('MySecretPassword', '\$5\$%s\$' % randomsalt)" --- $5$LgsPuaeR$OCtm.3tpbS/wyOZAIy6dsVNP4x0GyohyGebkIz15e88

Generate SHA-512 password hash:

python -c "import random,string,crypt; randomsalt = ''.join(random.sample(string.ascii_letters,8)); print crypt.crypt('MySecretPassword', '\$6\$%s\$' % randomsalt)" --- $6$HMpFTkgb$WqzuqMqYbjWsXFrOtvZPo.1gIkH6HiXJGr4QPv.k26jE.3mE.sdf3dds[. ]

Hope these commands will be helpful.

Just don’t forget to replace MySecretPassword with YourSecretPassword.

As you can see, it is really very easy to generate hashes for the /etc/shadow from the Linux command line using Python.

Particularly for the reason that the Python is installed by default on the most Linux distributions.

Источник

Как хешировать пароли в Linux

Пароли никогда не должны храниться в виде обычного текста. Говорим ли мы о веб-приложении или операционной системе, они всегда должны быть в хэш форме (например, в Linux хешированные пароли хранятся в /etc/shadow файл). Хеширование — это процесс, посредством которого с помощью некоторых сложных алгоритмов пароль превращается в другую строку. Такой процесс в одну сторону: невозможно вернуть хешированный пароль к его исходной текстовой форме. Хеширование часто включает использование случайных данных в качестве дополнительных входных данных для алгоритма хеширования, поэтому один и тот же пароль, хешированный два раза, не дает одинакового результата. Эти случайные данные называются поваренная соль. В этом руководстве мы исследуем некоторые методы, которые мы можем использовать для хеширования паролей в Linux.

Читайте также:  Linux screen delete all

В этом уроке вы узнаете:

Как хешировать пароли в Linux

  • Как хешировать пароль с помощью утилиты mkpasswd
  • Как хешировать пароль с помощью Python и модуля Crypt
  • Как хешировать пароль с помощью openssl

Требования к программному обеспечению и используемые условные обозначения

Требования к программному обеспечению и условные обозначения командной строки Linux
Категория Требования, условные обозначения или используемая версия программного обеспечения
Система Независимый от распределения
Программное обеспечение mkpasswd / питон / openssl
Другой Никто
Условные обозначения # — требуется данный linux-команды для выполнения с привилегиями root либо непосредственно как пользователь root, либо с использованием судо команда
$ — требуется данный linux-команды будет выполняться как обычный непривилегированный пользователь

Хеширование пароля с помощью mkpasswd

Первый метод генерации хэша пароля, который мы обсуждаем в этом руководстве, заключается в использовании mkpasswd утилита, поэтому первое, что нужно сделать, это убедиться, что она установлена ​​в нашей системе. Приложение доступно в официальных репозиториях всех наиболее часто используемых дистрибутивов Linux. Чтобы установить его в Fedora, мы должны выполнить следующую команду:

$ sudo dnf установить mkpasswd

Вместо этого в Debian и его многих производных приложение является частью пакета whois (в любом случае оно должно быть установлено по умолчанию):

Как только приложение установлено в нашей системе, мы можем использовать его для хеширования нашего простого пароля. Базовый синтаксис следующий:

С -м вариант (сокращение от —метод ) мы указываем, какой алгоритм хеширования хотим использовать. Чтобы получить список доступных, нам просто нужно передать «help» в качестве аргумента опции:

$ mkpasswd -m help. Доступные методы: yescrypt Yescrypt. gost-yescrypt ГОСТ Yescrypt. scrypt scrypt. bcrypt bcrypt. bcrypt-a bcrypt (устаревшая версия $ 2a $) sha512crypt SHA-512. sha256crypt SHA-256. sunmd5 SunMD5. md5crypt MD5. bsdicrypt Расширенный шифрование на основе DES BSDI (3) расшифровать стандартную 56-битную крипту на основе DES (3) NT-Hash.

Рекомендуемый алгоритм: sha512crypt (это то, что используется в Linux). Как только мы запустим команду, нам будет предложено ввести пароль, который мы хотим хэшировать. Программа работает интерактивно по соображениям безопасности: если бы нам пришлось ввести простой текстовый пароль непосредственно в качестве аргумента какой-либо опции, он был бы виден в выводе пс как часть команды и в истории оболочки.

Читайте также:  Moc плеер настройка linux

Хешированный пароль возвращается в виде вывода команды:

$ mkpasswd -m sha512crypt. Пароль: $ 6 $ 2sE / 010goDuRSxxv $ o18K52wor.wIwZp6aXXBC69phYwPQahKQo2ex8ce2.f0V9BtnYZc0KtTB0WGm2m5pNOcL1Ep3kgDWmJCz36B. /

В поваренная соль генерируется случайным образом, но для явной передачи значения мы можем использовать -s вариант (сокращение от —поваренная соль ).

Если по какой-то причине мы все же хотим ввести пароль для хеширования неинтерактивным способом (опять же, это не рекомендуется), мы будем использовать —стдин вариант и некоторая магия перенаправления:

$ mkpasswd -m sha512crypt --stdin 

Хеширование пароля с помощью Python

Другой метод, который мы можем использовать для генерации хэша пароля в Linux, - это использование Python и склеп модуль. Сначала мы импортируем модуль, затем используем склеп функция включена в него. У функции есть один обязательный аргумент - простой текст, который мы хотим зашифровать; он возвращает односторонний хешированный пароль с добавлением соли. Метод хеширования можно передать явно в качестве второго аргумента функции, выбрав один из следующих (если он не указан, используется самый сильный из доступных на платформе):

  • склеп. METHOD_SHA512
  • склеп. METHOD_SHA256
  • склеп. METHOD_BLOWFISH
  • склеп. METHOD_MD5
  • склеп. METHOD_CRYPT

В склеп. METHOD_SHA512 самый сильный. При использовании пароль хешируется с помощью функции sha512 с долей 16 символы.

Чтобы избежать передачи исходного пароля как части команды, который также будет сохранен в истории оболочки Python, мы также должны импортировать Getpass модуль и сделайте так, чтобы пароль запрашивался в интерактивном режиме с помощью getpass () метод, включенный в него.

Чтобы сгенерировать наш хешированный пароль, мы должны поступить следующим образом:

>>> импорт склепа. >>> импортируйте getpass. hashed_password = crypt.crypt (getpass.getpass (), крипта. METHOD_SHA512) Пароль:

При работе из оболочки приведенный выше пример может быть выполнен как однострочный, вызывая интерпретатор Python с -c опция, позволяющая указать команду, которая будет выполняться напрямую:

$ hashed_password = "$ (python3 -c 'import crypt; import getpass; print (crypt.crypt (getpass.getpass (), crypt. МЕТОД_SHA512)) ') "

В приведенном выше примере вы можете заметить, что мы использовали Распечатать() функция для печати сгенерированного хешированного пароля, чтобы он использовался как результат подстановки команды и стал значением hashed_password Переменная.

Хеширование пароля с помощью openssl

Третий и последний метод генерации хэша пароля, который мы исследуем в этом руководстве, заключается в использовании openssl пароль команда. По умолчанию команда использует склеп алгоритм генерации хешированного пароля. Чтобы использовать Sha512 алгоритм, вместо этого мы должны использовать -6 вариант. Вот что мы напишем:

$ openssl пароль -6. Пароль: Проверка - Пароль: 6 $ 82Bk5H60hZqXBSUp $ GPdqJ1zNQOXwuXqUBBB59a4oaKah / HpR3nbiNrW1eXXPH48mTRZ3y6cOOMHnBtMjLF9IBfhDWfQMXMk8kM5kM5kM5k.

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

Как и в случае с другими методами, поваренная соль создается автоматически, но у нас есть возможность предоставить его напрямую, используя --поваренная соль вариант:

У нас также есть возможность прочитать пароль из файла. Все, что нам нужно сделать, это использовать -в параметр и передайте путь к файлу, содержащему пароль, в качестве аргумента. Предположим, наш пароль записан в password.txt файл, мы бы написали:

$ openssl passwd -6 -in password.txt

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

Наконец, если мы не возражаем против последствий для безопасности, мы можем передать пароль для хеширования непосредственно в качестве последнего аргумента команды:

$ openssl passwd -6 "простой пароль"

Заключительные мысли

В этом руководстве мы увидели три метода, которые мы можем использовать для хеширования паролей в Linux. Мы увидели, как использовать mkpasswd утилита, как сгенерировать хэш пароля с помощью языка программирования Python, используя склеп модуль, и, наконец, как выполнить ту же операцию, используя openssl .

Подпишитесь на новостную рассылку Linux Career Newsletter, чтобы получать последние новости, вакансии, советы по карьере и рекомендуемые руководства по настройке.

LinuxConfig ищет технических писателей, специализирующихся на технологиях GNU / Linux и FLOSS. В ваших статьях будут представлены различные руководства по настройке GNU / Linux и технологии FLOSS, используемые в сочетании с операционной системой GNU / Linux.

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

Как изменить порт SSH в Linux

Как изменить порт SSH в Linux

Порт по умолчанию для SSH на Системы Linux 22 года. Есть несколько причин, по которым вы можете захотеть изменить это число на другое. Если несколько серверов используют один и тот же IP-адрес (например, за конфигурацией NAT), вы обычно не можете .

Как установить ssl на RHEL 8 / CentOS 8

Как установить ssl на RHEL 8 / CentOS 8

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

Как установить Firefox Developer Edition в Linux

Как установить Firefox Developer Edition в Linux

«Версия для разработчиков» - это специальная версия веб-браузера Mozilla Firefox, предназначенная для работы в Интернете. Разработчики. Он имеет функции, стабилизированные в ночных сборках, предоставляет экспериментальные инструменты разработчика .

Источник

Оцените статью
Adblock
detector