Como armazenar login de usuario de forma segura?

1. Como armazenar login de usuario de forma segura?

José Lucas
NidoBr

(usa Manjaro Linux)

Enviado em 01/11/2019 - 08:18h

No script o usuário tera que cadastrar um usuário e senha, irei armazenar este login em um arquivo mas como fazer isso de forma segura?


  


2. Re: Como armazenar login de usuario de forma segura?

Paulo
paulo1205

(usa Ubuntu)

Enviado em 01/11/2019 - 09:16h

Não coloque no texto do script.

Contudo, o melhor jeito de fazer depende do propósito e de como o script será usado. É senha de que tipo de serviço? Quem vai poder rodar o script? Com qual usuário o script será armazenado no disco? Cad usuário terá sua própria senha, ou todos os eventuais usuários vão usar o mesmo serviço e com a mesma senha?


... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)


3. Re: Como armazenar login de usuario de forma segura?

augusto
marimbondo

(usa Outra)

Enviado em 07/11/2019 - 21:34h

Não armazene a senha do usuário, e sim o MD5 ou algum outro hash da senha.
Por exemplo, não precisamos saber que a senha de um usuário é "fofinho123", mas somente o hash dela:

echo "fofinho123" | md5sum | cut -d' ' -f1
1d0be716ce45c7009450d2a7e73dde8e


Será que faz sentido isso?


4. Re: Como armazenar login de usuario de forma segura?

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 09/11/2019 - 03:24h

Você pode tentar algo +/- desse tipo:
#!/bin/sh
logins='login_info' # Arquivo onde serao salvas as informacoes de login dos usuarios

cadastrarUsuario() {
local login senha senha_ salt

read -p 'Login de acesso: ' login

grep "^${login}:" $logins > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo 'Usuario ja cadastrado.'
exit 1
fi

stty -echo
read -p 'Senha: ' senha
echo ''
read -p 'Repetir senha: ' senha_
stty echo

if [ "$senha" != "$senha_" ]; then
echo 'As senhas nao coincidem!'
exit 1
fi

salt=$(head -c 512 /dev/urandom | tr -cd '[:graph:]' | cut -c 1-16)

echo "${login}:${salt}:$(echo ${salt}$senha | sha256sum | awk '{print $1}')" >> $logins

return 0

}

validarUsuario() {
local login senha salt hash_
read -p 'Login: ' login
stty -echo
read -p 'Senha: ' senha
stty echo
echo ''

salt=$(grep "^${login}:" $logins | cut -d ':' -f 2)
hash_=$(grep "^${login}:" $logins | cut -d ':' -f 3)

if [ "$hash_" != $(echo "${salt}$senha" | sha256sum | awk '{print $1}') ]; then
echo 'Usuario ou senha invalidos!'
exit 1
fi

echo "Login realizado com sucesso."

return 0
}

[ "$1" == '-d' ] && validarUsuario || cadastrarUsuario

* Exemplo extremamente simples, apenas para fins didáticos. ;)







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts