Password Generator

0

re-aprendendo bash de estar na uni, e fazendo um gerador de senhas. Eu quero ser capaz de produzir os resultados para um arquivo de texto alguém pode ajudar? meu código até agora é:

#!/bin/bash

#Password Generator

#Account Name
echo "What account is this password for"
read account

#username
echo "Please give your username"
read username

#ask for password length

echo "please provide a password length"
read length

echo "Your password is"
openssl rand -base64 $length

Eu gostaria de poder gerar os resultados da conta, nome de usuário e qual é a senha do arquivo de texto Agradecemos antecipadamente por qualquer ajuda, e espero que esta consulta faça sentido!

    
por Dominic 26.03.2016 / 00:56

2 respostas

0

Existem várias maneiras de fazer isso, mas, no final das contas, apenas duas abordagens: pipe para um arquivo ou pipe para um programa que grava em um arquivo.

Eu criei algumas versões modificadas dos seus scripts abaixo, demonstrando alguns métodos.

Saída para um novo arquivo (Gedit):

#!/bin/bash
#Password Generator A 1.1
#A random password generator written for Bash.
#Dependencies: Gedit, OpenSSL
##Request Inputs
###Account Name
echo -n "Account Name:"
read account
###Username
echo -n "Username:"
read username
###Password Length
echo -n "Password length:"
read length
##Generate Password 
password=$(openssl rand -base64 $length)
##Generate Result
###Merge variables
output=$(echo -e "Account Name:${account}\nUsername:${username}\nPassword:${password}")
##Output result
###Output to terminal
echo "$output"
###Output to new file in Gedit
echo "$output" | gedit -
exit 0

Saída para um novo arquivo (Nano):

#!/bin/bash
#Password Generator B 1.1
#A random password generator written for Bash.
#Dependencies: Nano, OpenSSL
##Request Inputs
###Account Name
echo -n "Account Name:"
read account
###Username
echo -n "Username:"
read username
###Password Length
echo -n "Password length:"
read length
##Generate Password 
password=$(openssl rand -base64 $length)
##Generate Result
###Merge variables
output=$(echo -e "Account Name:${account}\nUsername:${username}\nPassword:${password}")
##Output result
###Output to terminal
echo "$output"
###Output to new file in Nano
echo "$output" | nano -
exit 0

Saída para um arquivo de texto localizado em "~ / output":

#!/bin/bash
#Password Generator C 1.1
#A random password generator written for Bash.
#Dependencies: OpenSSL
##Request Inputs
###Account Name
echo -n "Account Name:"
read account
###Username
echo -n "Username:"
read username
###Password Length
echo -n "Password length:"
read length
##Generate Password 
password=$(openssl rand -base64 $length)
##Generate Result
###Merge variables
output=$(echo -e "Account Name:${account}\nUsername:${username}\nPassword:${password}")
##Output result
###Output to terminal
echo "$output"
###Output to file
echo "$output" > "$HOME/output"
exit 0

Saída para um arquivo de texto localizado em "~ / output" (usando Tee):

#!/bin/bash
#Password Generator D 1.1
#A random password generator written for Bash.
#Dependencies: Tee, OpenSSL
##Request Inputs
###Account Name
echo -n "Account Name:"
read account
###Username
echo -n "Username:"
read username
###Password Length
echo -n "Password length:"
read length
##Generate Password 
password=$(openssl rand -base64 $length)
##Generate Result
###Merge variables
output=$(echo -e "Account Name:${account}\nUsername:${username}\nPassword:${password}")
##Output result
###Output to terminal & file
echo "$output" | tee "$HOME/output"
exit 0

Saída para um arquivo de texto (o usuário escolhe):

#!/bin/bash
#Password Generator E 1.1
#A random password generator written for Bash.
#Dependencies: OpenSSL
##Request Inputs
###Account Name
echo -n "Account Name:"
read account
###Username
echo -n "Username:"
read username
###Password Length
echo -n "Password length:"
read length
###Save Location
echo -n "Save to:"
read savelocation
##Generate Password 
password=$(openssl rand -base64 $length)
##Generate Result
###Merge variables
output=$(echo -e "Account Name:${account}\nUsername:${username}\nPassword:${password}")
##Output result
###Output to terminal
echo "$output"
###Output to file
echo "$output" > "$savelocation"
exit 0
    
por no-reply 28.03.2016 / 06:32
0

Você pode redirecionar qualquer saída com eco como: cmd > nome do arquivo ou no seu caso:

openssl rand -base64 $length > passwords.txt
    
por user3406253 26.03.2016 / 01:03