Você também pode dizer algo assim:
~$ echo -n Welcome | md5sum
83218ac34c1834c26781fe4bde918ee4 -
Basicamente faz a mesma coisa descrita por @enzotib, mas é talvez um pouco mais simples.
Como obtenho o hash MD5 de uma string diretamente do terminal?
Por exemplo, eu quero a string abcdefg
hashed. Atualmente, o comando md5sum só aceita um nome de arquivo como entrada. Eu quero simplesmente inserir a seguinte linha e tudo ser feito com.
md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f
Como posso conseguir isso?
Você também pode dizer algo assim:
~$ echo -n Welcome | md5sum
83218ac34c1834c26781fe4bde918ee4 -
Basicamente faz a mesma coisa descrita por @enzotib, mas é talvez um pouco mais simples.
Muito simples, aceita stdin, então
md5sum <<<"my string"
Para evitar a nova linha final adicionada pelo shell:
printf '%s' "my string" | md5sum
$ echo -n 123456 | md5sum | awk '{print }'
e10adc3949ba59abbe56e057f20f883e
você pode criar um script de shell.
Por exemplo, o nome do script é md5.sh:
#!/bin/bash
echo -n | md5sum | awk '{print }'
permissão de execução:
chmod +x md5.sh
Então:
$ md5.sh 123456
e10adc3949ba59abbe56e057f20f883e
Se o seu sistema é macOS. Você precisa modificar este script:
$ echo -n 123456 | md5 | awk '{print }'
e10adc3949ba59abbe56e057f20f883e
Executar md5sum sem nenhum argumento fará com que ele leia a entrada do terminal. Digite ou cole o que quiser e, quando terminar, pressione ctrl-d
para finalizar a entrada.
openssl md5 filename
openssl sha1 filename
Para pipe de string o conteúdo usando echo
echo -n 123456 | openssl md5
Meu teste rápido no --help
para md5sum
demonstra que o comando:
md5sum -
irá então dar um aviso para uma entrada simples. Introduzir algum texto e depois usar Enter e então Ctrl + D para indicar o final do arquivo, então faz com que md5sum
cuspa o MD5 do texto bruto que você digitou (incluindo o Enter , é um CR, IIRC).
Menos para digitar e sem canalização! E evitando que sua senha de texto simples seja registrada no histórico do shell! Woo!
Se você não quer aquele CR à direita (o que geralmente é o caso se você quiser hash uma senha), não pressione Enter antes de Ctrl + D , digite Ctrl + D duas vezes.
Nos meus scripts, descobri que há duas coisas que você deve saber sobre esse problema.
echo "$myvariable"
ou echo -n "$myvariable"
mas você deve sempre usar o doubleqoutes para strings e sempre usar o mesmo método. se não as coisas não combinam. na saída, você obtém sempre um espaço à direita e um traço, conforme mostrado no exemplo:
$ echo -n Welcome | md5sum
7803ffcaea43bb81a439fde13b29bc35 -
para se livrar disso e ficar apenas com o código 7803ffcaea43bb81a439fde13b29bc35
,
faça: echo "$myvariable" | md5sum | cut -d" " -f1
Tags command-line md5sum