Поиск по сайту:

Ленивые всегда собираются сделать что-нибудь (Л. Вовенарг).

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

3 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
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 Fu. Завершение пользовательских команд Bash

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

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

 

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

OC9dFqwwbU

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

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

Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x

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

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

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close