OpenSSL
Esta dica faz uso do OpenSSL, se preferir é possível modificar o script para uso dos comandos shasum.Praticidade
Não quis criar um arquivo shell script ou similar, que apesar de permitir mais possibilidades tem o inconveniente de precisar criar o arquivo antes de rodar quando utilizando em uma nova máquina, então parti para um script em linha que possa ser (relativamente) facilmente lembrado.Ao executar o script você pode notar que o texto a ser computado é solicitado apenas uma vez, e normalmente em passwords nós realizamos duas entradas para confirmar a entrada. Apesar de possível, isto iria dificultar a memorização do script, então, para confirmar o hash execute o comando duas vezes utilizando o histórico de comandos do console (seta para cima).
O comando
$ read -s -p "Texto: " psw; echo -n -e "\nHash SHA1: "; echo -n $psw | openssl dgst -sha1
Analisando passo-a-passo:1.
read -s -p "Texto: " psw;
Captura informação da entrada padrão do console "stdin", mostrando um prompt (-p "Texto:") ao usuário, sem exibir a informação digitada (-s), e armazenando a entrada na variável "psw".
2.
echo -n -e "\nHash SHA1: ";
Exibe no console uma informação preparando para o posicionamento do hash gerado, sem pular linhas (-n), habilitando a interpretação de escapes (-e) e pulando uma linha do prompt de entrada (\n).
3.
echo -n $psw |
Encaminha (|) para o próximo comando o valor da variável psw sem quebra de linha (-n).
* A opção -n é importante para não gerar valores errados de hash, pois o echo, por padrão, inclui uma quebra de linha no fim da exibição.
4.
openssl dgst -sha1
E, finalmente, gera o hash (dgst) com o openssl. É possível utilizar qualquer algoritmo disponível no openssl substituindo o parâmetro "-sha1" (sha256, md5, ...).
Nenhum comentário:
Postar um comentário
Olá! Antes de postar seu comentário, por favor, observe que comentários técnicos, elogios e sugestões são antecipadamente agradecidos, esclarecimentos sobre os conceitos envolvidos na postagem serão respondidos da melhor forma possível, mas pedidos de ajuda técnica ou suporte individual deverão ser feitos através do formulário de contato. Grato!