Поиск по сайту:
Жениться совсем не трудно, трудно быть женатым (М. Унамуно).

Как генерировать случайный пароль в оболочке Linux

12.12.2016
Как генерировать случайный пароль в оболочке Linux

Есть несколько способов генерации случайных паролей любых любых желаемых символов в Linux.

  1. PWGen

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

$ pwgen 10 8

 

Пример вывода

ouQ1e2hooB jee1o2jiPe iiF63g5ree phoo3O40ah k5e2reo8Is aiZ6iZ3kel ieb7ov6Dai si48ie5eiT

 

Для того, чтобы сделать его еще сильнее, может быть использован флаг ‘-s’, который генерирует случайные и трудно запоминающийся пароль.

$ pwgen 10 8

 

Пример вывода

4RP3k9g1KG W2cWav15mF eH3hS8KD49 bH10Zg4VtB k5Zu2m1Wea Hx5Dv5d6Gh Nfn7r7FxYH x6YfClj8W6

 

Дополнительно

Вы можете создать имя пользователя в случайном порядке с помощью командной строки утилиты gpw. Для создания 3 случайных имен пользователей из 6 букв, вы можете сделать

$ gpw 3 6</pair>
<p>Пример вывода</p>
<pre>
ttuons
ionwes
ferall

 

2. OpenSSL

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

$ openssl rand -base64 10 | cut -c -10

 

Пример вывода

nday7dwFIQ

 

3. $ RANDOM

$ RANDOM является встроенной переменной в BASH. Вы можете генерировать случайный пароль примерно так

$ echo $RANDOM$RANDOM$RANDOM | tr '[0-9]' '[a-zA-Z]' | cut -c -10

 

Пример вывода

gabsbbwhbc

 

В случае, если вы хотите создать только цифровой пароль

$ echo $RANDOM$RANDOM$RANDOM |cut -c3-12

 

Пример вывода

1227344409

 

4. bash.generate.random.alphanumeric.string.sh

Ниже сценарий написан ‘earthgecko’. Вы можете получить последнюю версию от здесь.

#!/bin/bash
# bash generate random alphanumeric string
#
 
# bash generate random 32 character alphanumeric string (upper and lowercase) and
NEW_UUID=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
 
# bash generate random 32 character alphanumeric string (lowercase only)
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
 
# Random numbers in a range, more randomly distributed than $RANDOM which is not
# very random in terms of distribution of numbers.
 
# bash generate random number between 0 and 9
cat /dev/urandom | tr -dc '0-9' | fold -w 256 | head -n 1 | head --bytes 1
 
# bash generate random number between 0 and 99
NUMBER=$(cat /dev/urandom | tr -dc '0-9' | fold -w 256 | head -n 1 | sed -e 's/^0*//' | head --bytes 2)
if [ "$NUMBER" == "" ]; then
  NUMBER=0
fi
 
# bash generate random number between 0 and 999
NUMBER=$(cat /dev/urandom | tr -dc '0-9' | fold -w 256 | head -n 1 | sed -e 's/^0*//' | head --bytes 3)
if [ "$NUMBER" == "" ]; then
  NUMBER=0
fi

 

Читать  Как установить неограниченное кол-во пользователей и описания файлов на сервере Linux

Пример вывода

fEFWqyvlAbOSpp7qKjCmMfqziRuHdho6O

 

Этот скрипт генерирует случайное число из 32 символов. Для генерации случайного пароля из 10 цифр из этого сценария, вы можете сделать 2 вещи.

    • Измените сценарий и замените 32 на 10. Таким образом, сценарий сейчас выглядит примерно так
#!/bin/bash
# bash generate random alphanumeric string
#
 
# bash generate random 10 character alphanumeric string (upper and lowercase) and
NEW_UUID=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 1)
 
# bash generate random 10 character alphanumeric string (lowercase only)
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 1
 
# Random numbers in a range, more randomly distributed than $RANDOM which is not
# very random in terms of distribution of numbers.
 
# bash generate random number between 0 and 9
cat /dev/urandom | tr -dc '0-9' | fold -w 256 | head -n 1 | head --bytes 1
 
# bash generate random number between 0 and 99
NUMBER=$(cat /dev/urandom | tr -dc '0-9' | fold -w 256 | head -n 1 | sed -e 's/^0*//' | head --bytes 2)
if [ "$NUMBER" == "" ]; then
  NUMBER=0
fi
 
# bash generate random number between 0 and 999
NUMBER=$(cat /dev/urandom | tr -dc '0-9' | fold -w 256 | head -n 1 | sed -e 's/^0*//' | head --bytes 3)
if [ "$NUMBER" == "" ]; then
  NUMBER=0
fi

 

Пример вывода

9HZhpqWcyJ

 

    • Если не изменять сценарий, то можно вырезать из 32 символов с помощью команды ‘cut’ в Linux, чтобы получить 10 символов, примерно так
$ ./bash.generate.random.alphanumeric.string.sh  | cut -c -10

 

Читать  Использование оператора =~ в Bash

Пример вывода

OC9dFqwwbU

Как генерировать случайный пароль в оболочке Linux

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Вы никогда не думали о создании записи в блоге только…

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: