Поиск по сайту:
Мы и не представляем себе, сколько нужно ума, чтобы не казаться смешным! (Н. Шамфор).

Как генерировать случайный пароль в оболочке 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

 

Читать  Руководство по установке TensorFlow на Ubuntu

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

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

 

Читать  Как показать MOTD в Linux

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

OC9dFqwwbU

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

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

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


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

**ссылки nofollow

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

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


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

Спасибо!

Теперь редакторы в курсе.