Есть несколько способов генерации случайных паролей любых любых желаемых символов в Linux.
- 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
Пример вывода
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