As senhas no linux ficam em um arquivo "/etc/shadonw" só que elas são mascaradas por uma função de hash, ex:
bispo:$6$7rmDOxic$53xiWN/VjGLnSLE25EfSPWixgCKr5GwXoO5HOrhZMpvNL3JiSvOmtYu3cTdcRof9p9rpCw5G3/LXE1aRoubS9/:14916:0:99999:7:::
para gerar um hash desse ou mesmo checar se a senha é válida podemos usar um modulo em python chamado crypt
o crypt tem dois valores a serem entrados: senha em texto puro e o passo
>>> import crypt
>>> crypt.crypt(senha,passo)
Minha senha é fedora_linux, como podemos chegar ao valor do hash "$6$7rmDOx...aRoubS9/" para validar esse senha:
O passo do shadow é a parte inicial do hash $6$7rmDOxic$ (12 primeiros caracteristicas).
para gerar o hast é só colocar
>>> crypt.crypt('fedora_linux','$6$7rmDOxic$')
'$6$7rmDOxic$53xiWN/VjGLnSLE25EfSPWixgCKr5GwXoO5HOrhZMpvNL3JiSvOmtYu3cTdcRof9p9rpCw5G3/LXE1aRoubS9/'
pronto, temos o hash completo gerado, com isso já podemos fazer o teste de validação da senha
para criar uma senha nova o procedimento é:
1) Gerar um passo novo, ex: $6$9aaz9XCD$
2) Escolhe uma nova senha, ex: nova_senha
>>> crypt.crypt('nova_senha','$6$9aaz9XCD$')
'$6$9aaz9XCD$Se77F6VrRJAGHZx6pIatONUYiSg7j4phpUDG8VFcgVyLn9eDPnTajBKgn1XSfS/5huIquHiZrcXwONsMlYIMP.'
Se sobrescrever o hash antigo por esse novo, a senha do usário estará trocada para "nova_senha".
Fica ai essa dica para quem quiser fazer um aplicativo mais integrado ao linux e usando o banco de senhas do linux para fazer o login da aplicação.
Nenhum comentário:
Postar um comentário