Сохранение сгенерированных паролей в .txt файл

random-string()
{
    cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w ${1:-8} | head -n 1
}

Используя этот сценарий для генерации списка нескольких тысяч случайных 8 цифр алфавитно-цифровые пароли.

Есть ли какой-либо способ, которым я могу добавить к этому сценарию для сохранения сгенерированных паролей в .txt файл?

Я довольно плохо знаком с Linux и нашел много ресурсов в сети, но я озадачен на этом.

2
задан 1 August 2015 в 19:59

2 ответа

Вы определили функцию random-string() генерировать случайные пароли, содержащие A-Za-z0-9 и вывод только самого верхнего (head -1), от Вашего вопроса не ясно, что делают Вы хотите сохранить пароли, сгенерированные после одного выполненного каждый раз в файл, или Вы хотите сделать это рекурсивно.

Позвольте мне упростить Вашу команду сначала:

tr -dc '[:alnum:]' </dev/urandom | fold -w 8 | head -n 1
  • tr посещает урок символов [:alnum] который обозначает символы A-Za-z0-9

  • Нет никакой потребности в cat, передайте имя файла через STDIN к tr

  • Расширение параметра fold -w ${1:-8} не нужно, просто используйте fold -w 8

Теперь для сохранения вывода после одного выполнения функции (только один пароль) это перезапишет файл каждый раз, использовать оболочку > оператор перенаправления:

$ random_string () { tr -dc '[:alnum:]' </dev/urandom | fold -w 8 | head -n 1 ;} >foobar

$ random_string

$ cat foobar 
MqJdehaO

Мы сохраняем STDOUT функции random_string в файл foobar в текущем каталоге.

В следующем запуске файл будет перезаписан с новым содержанием:

$ random_string

$ cat foobar 
NP85OmWw

Перезаписывать файл, например. spamegg использовать >> перенаправление, что означает STDOUT функции, будет добавлено в файл каждый раз, когда мы выполняем его:

$ random_string () { tr -dc '[:alnum:]' </dev/urandom | fold -w 8 | head -n 1 ;} >>spamegg

$ random_string

$ cat spamegg 
vjwOe6TB

$ random_string

$ cat spamegg 
vjwOe6TB
TBkv6qPh

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

$ random_string () { tr -dc '[:alnum:]' </dev/urandom | fold -w 8 | head -n "$1" ;} >foobar

$ random_string 5

$ cat foobar 
AV79dZeC
byitWYfX
eDBAldiI
6OxNU78H
gRs7SwEO

Поскольку Вы видите, что 5 паролей были сгенерированы и сохранены в файле foobar, изменение 5 с любым количеством паролей Вы хотите.

1
ответ дан 2 December 2019 в 02:56

Использование Перенаправления ввода-вывода

your_script 1>> pwd_list

перенаправить и добавить stdout в файл pwd_list.


НАПРИМЕР.

#!/bin/bash
random-string()
{
    tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w "${1:-8}" | head -n 1
}

if [ -f out_pwd ]; then
   rm out_pwd
fi

COUNTER=0
while [ "$COUNTER" -le 10 ]; do
    random-string "$@" 1>> pwd_list
done

exit 0

и просто запустите сценарий, вывод в файл pwd_list часть сценария


или используйте этот сценарий, для перенаправления вывода в файле pwd_list когда Вы запускаете сценарий

#!/bin/bash
random-string()
{
    tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w "${1:-8}" | head -n 1
}

COUNTER=0
while [ "$COUNTER" -le 10 ]; do
    random-string "$@"
done

exit 0

и запустите сценарий с

script_name 1>> pwd_list
2
ответ дан 2 December 2019 в 02:56

Другие вопросы по тегам:

Похожие вопросы: