Jak uzyskać skrót MD5 ciągu bezpośrednio z terminala?
Na przykład chcę, aby łańcuch był abcdefg
mieszany. Obecnie polecenie md5sum przyjmuje tylko nazwę pliku jako dane wejściowe. Chcę po prostu wprowadzić następujący wiersz i wszystko się skończy.
md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f
Jak mogę to osiągnąć?
command-line
md5sum
Hamed Momeni
źródło
źródło
md5 -s abcdefg
Odpowiedzi:
Możesz także powiedzieć coś takiego:
Zasadniczo robi to samo, co opisał @enzotib, ale może jest nieco prostszy.
źródło
83218ac34c1834c26781fe4bde918ee4 -
-n
jest to obowiązkowe. Bez niego Twój skrót będzie całkowicie błędny, ponieważ zawiera znak nowej linii.-
na końcu. @jfmessierBardzo proste, akceptuje standardowe wejście, więc
Aby uniknąć końcowego znaku nowej linii dodanego przez powłokę:
źródło
<<<"
potoku w skrypcie;echo string
wygrywa dla wiersza poleceń. Dobra robota.printf
prawidłowe użycie . Jeśli chcesz mieć sumę bez-
, włóż| cut -d ' ' -f 1
. Przykładowe użycie:sum=$(printf '%s' 'some string' | md5sum | cut -d ' ' -f 1)
<<<
operator iprintf
funkcja dają zupełnie inne wyniki dla skrótu md5! wynik printf jest jednak poprawny!<<<
operator wysyła nowy wiersz do md5sum!możesz utworzyć skrypt powłoki.
Na przykład nazwa skryptu to md5.sh:
uprawnienie wykonać:
Następnie:
Jeśli twój system to macOS. Musisz zmodyfikować ten skrypt:
źródło
cut -d ' ' -f 1
md5() { echo -n $1 | md5sum | awk '{print $1}'; }
w .bashrc, a następnie mogę jej używać$ md5 test
w wierszu poleceń. dzięki za odpowiedźawk
polecenie:'$0=$1'
Uruchomienie md5sum bez żadnych argumentów spowoduje odczyt danych wejściowych z terminala. Wpisz lub wklej, co chcesz, a kiedy skończysz, naciśnij,
ctrl-d
aby zakończyć wprowadzanie.źródło
ctrl+d
trzeba go nacisnąć dwukrotnie, aby działało.W przypadku potoku tekstowego treść używa echa
źródło
Moje szybkie poke na
--help
formd5sum
pokazuje, że polecenie:wyświetli monit o proste wprowadzenie danych. Wpisanie tekstu, a następnie użycie, Entera następnie Ctrl+ w Dcelu oznaczenia końca pliku powoduje
md5sum
wyplucie MD5 wprowadzonego nieprzetworzonego tekstu (łącznie Enterz CR, IIRC).Mniej do pisania i bez orurowania! I unikanie zapisywania hasła w postaci zwykłego tekstu w historii powłoki! Zabiegać!
Jeśli nie chcesz tego końcowego CR (co zwykle ma miejsce, jeśli chcesz hashować hasło), nie naciskaj Enterprzed Ctrl+ D, zamiast tego wpisz Ctrl+ Ddwa razy.
źródło
W moich skryptach stwierdziłem, że na ten temat powinieneś wiedzieć 2 rzeczy.
echo "$myvariable"
alboecho -n "$myvariable"
ale zawsze należy użyć doubleqoutes na smyczki i zawsze używać tej samej metody. jeśli nie, rzeczy nie będą pasować.w wyniku otrzymujesz zawsze spację końcową i myślnik, jak pokazano w przykładzie:
aby się tego pozbyć i pozostać tylko przy kodzie
7803ffcaea43bb81a439fde13b29bc35
, wykonaj:echo "$myvariable" | md5sum | cut -d" " -f1
źródło
-n
tutaj parametru, aby uniknąć wypisywania końcowegoecho -n $myvariable | md5sum | cut -d" " -f1
Istnieje wiele przykładów, aby to zrobić, ale niektóre z nich nie są równoważne, ponieważ niektóre z nich jawnie lub pośrednio zawierają znak nowej linii, a inne nie.
Chciałbym jasno sprecyzować, które z popularnych metod obejmują nową linię, a które nie.
Oto kilka przykładów obliczania skrótu md5 BEZ końcowego znaku nowej linii (PRAWIDŁOWO):
Używanie pliku z tekstem:
Uwaga:
-n
wecho
oznacza: „nie wypisuj końcowego znaku nowej linii”.Używanie
echo
z-n
inline:Używanie
printf
:Używając tylko
md5sum
polecenia:(Napiszmy
md5sum
, naciśnij, Entera następnie napisz ciąg,test
a następnie naciśnij podwójną kombinację Ctrl+ d)Za pomocą
md5sum -
polecenia:(Napiszmy
md5sum -
, naciśnij, Entera następnie napisz ciąg,test
a następnie naciśnij podwójną kombinację Ctrl+ d)Oto kilka przykładów obliczania skrótu md5 Z końcowym znakiem nowej linii (TAK NIE POPRAWNY):
Używanie pliku z tekstem:
Używanie
echo
BEZ-n
wbudowanego:Używając tutaj ciągów :
Używając tylko
md5sum
polecenia, ale z Enterklawiszem po napisaniu tekstu:( Napiszmy
md5sum
, naciśnij, Entera następnie napisz ciąg,test
a następnie naciśnij agaien Enteri raz kombinację Ctrl+ d)Za pomocą
md5sum -
polecenia, ale z Enterklawiszem po napisaniu tekstu:( Napiszmy
md5sum -
, naciśnij, Entera następnie napisz ciąg,test
a następnie naciśnij agaien Enteri raz kombinację Ctrl+ d)źródło