Как получить хеш MD5 строки непосредственно в терминале?

133

Как получить MD5 хеш строки непосредственно из терминала?

Например, я хочу, чтобы строка abcdefg хешировалась. В настоящее время команда md5sum принимает только имя файла в качестве ввода. Я хочу просто ввести следующую строку, и все будет сделано с.

md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f

Как я могу это достичь?

    
задан Hamed Momeni 20.07.2011 в 13:08
источник

7 ответов

173

Вы также можете сказать что-то вроде этого:

~$ echo -n Welcome | md5sum
83218ac34c1834c26781fe4bde918ee4  -

В основном это делает то же, что описано @enzotib, но, возможно, немного проще.

    
ответ дан jfmessier 20.07.2011 в 13:47
источник
55

Очень просто, он принимает stdin, поэтому

md5sum <<<"my string"

Чтобы избежать возврата новой строки, добавленной оболочкой:

printf '%s' "my string" | md5sum
    
ответ дан enzotib 20.07.2011 в 13:10
16
$ echo -n 123456 | md5sum | awk '{print }'
e10adc3949ba59abbe56e057f20f883e

вы можете создать сценарий оболочки.

Например, имя скрипта - md5.sh:

#!/bin/bash

echo   -n    | md5sum | awk '{print }'

разрешить выполнение:

 chmod +x md5.sh

Тогда:

$ md5.sh 123456
e10adc3949ba59abbe56e057f20f883e

Если ваша система - macOS. Вам нужно изменить этот скрипт:

$ echo -n 123456 | md5 | awk '{print }' 
e10adc3949ba59abbe56e057f20f883e
    
ответ дан ty4z2008 09.03.2015 в 05:54
9

Запуск md5sum без каких-либо аргументов приведет к тому, что он прочитает ввод с терминала. Введите или вставьте все, что хотите, и, когда вы закончите, нажмите ctrl-d , чтобы закончить ввод.

    
ответ дан psusi 27.07.2011 в 17:46
3

Мой быстрый вывод на --help для md5sum показывает, что команда:

md5sum -

затем даст запрос на простой ввод. Ввод некоторого текста, а затем с помощью Enter , а затем Ctrl + D , чтобы обозначить конец файла, затем вызывает md5sum , чтобы вытолкнуть MD5 который вы ввели.

Меньше, чтобы напечатать и нет трубопроводов! Woo!

Если вы не нажмете Enter перед Ctrl + D , вам нужно будет ввести Ctrl + D дважды, где результат - неверная хэш-сумма.

    
ответ дан Will 21.08.2013 в 08:00
3
openssl md5 filename
openssl sha1 filename

Для строки string содержимое с использованием эха

echo -n 123456 | openssl md5
    
ответ дан guest 10.12.2015 в 12:13
2

В моих сценариях я обнаружил, что есть две вещи, которые вы должны знать об этой проблеме.

  • Неважно, выполняете ли вы echo "$myvariable" или echo -n "$myvariable" но вы всегда должны использовать doubleqoutes для строк и всегда использовать тот же метод. если не все будет соответствовать.
  • на выходе вы всегда получаете конечное пространство и тире, как показано в примере:

    $ echo -n Welcome | md5sum
    7803ffcaea43bb81a439fde13b29bc35  -
    

, чтобы избавиться от этого и остаться только с кодом 7803ffcaea43bb81a439fde13b29bc35 , do: echo "$myvariable" | md5sum | cut -d" " -f1

    
ответ дан Bodo Hugo Barwich 02.08.2014 в 15:39