W Arch Linux, jak mogę utworzyć pojedynczy hash md5 dla hasła za pomocą wiersza poleceń? Oczywiście zdaję sobie sprawę z tego, że dostępne są bezpieczne algorytmy haszujące hasła, których md5 nie jest, ale to tylko część eksperymentu.
W Arch Linux, jak mogę utworzyć pojedynczy hash md5 dla hasła za pomocą wiersza poleceń? Oczywiście zdaję sobie sprawę z tego, że dostępne są bezpieczne algorytmy haszujące hasła, których md5 nie jest, ale to tylko część eksperymentu.
Odpowiedzi:
Po prostu echo
do md5sum.
Pierwszy wynik uwzględnia znak nowej linii na końcu łańcucha przed wygenerowaniem skrótu.
$ echo P@ssword1 | md5sum
0a43c426e3d6764fe1f3f7cbb3579eba -
W przeciwnym razie, jak stwierdza @AFH , jeśli nie chcesz mieć znaku nowej linii, wykonaj następujące czynności:
$ echo -n 'P@ssword1' | md5sum
d106b29303767527fc11214f1b325fb6 -
echo -n 'P@ssword1' | md5sum
. W haśle umieściłem cudzysłowy na wypadek, gdyby zawierały znaki interpretowane przez powłokę; Użyłem pojedynczych cudzysłowów, aby zahamować ekspansję, jeśli istnieje $
.
P@ssword1
, ale P@ssword1<Newline>
. Użyj echo -n P@ssword1 | md5sum
zamiast tego.
Żadna z odpowiedzi nie wspomina, że za pomocą echo -n 'password' | …
, będziesz zapisywać hasło do trwałej pamięci, a mianowicie do swojej historii.
Można tego uniknąć, w zależności od powłoki, poprzedzając polecenie spacją (przetestuj to dla swojej powłoki). Przeczytaj dokumentację powłoki, w jaki sposób jest to obsługiwane.
Możesz też użyć md5sum
bezpośrednio, uruchamiając się md5sum
, wpisując hasło, a następnie Ctrl+D. Nie wciskaj Entermiędzy hasłem i Ctrl+D, chyba że chcesz, aby hash zawierał nowy wiersz.
8-O
(ile otworów bezpieczeństwa otwiera ...). BTW, jeśli zmienna $HISTCONTROL
jest ustawiona na ignorowanie lub ignorowanie obu poleceń wprowadzonych z odstępem wiodącym, nie zostaną zapisane w historii ... Niemniej jednak zawsze dobrym pomysłem jest przetestowanie jej bezpośrednio. (+1 ponownie :-)) ...
Wygląda na to, że wszyscy sugerują używanie echo
- przynajmniej przez większość czasu, na szczęście, z -n
, co łagodzi jeden z jego problemów (że drukuje nowy wiersz na końcu).
Ale echo
niekoniecznie jest konsekwentny. Ma wiele dziwnych zachowań, o których należy pamiętać, i może być niezgodny między systemami. Lepiej użyć printf
zamiast tego .
Dlatego powinieneś używać
$ printf '%s' 'P@ssword1' | md5sum
d106b29303767527fc11214f1b325fb6 -
$
Dzięki printf
, jeśli chcesz nowy wiersz na końcu, musisz jawnie go dodać:
$ printf '%s\n' 'P@ssword1' | md5sum
0a43c426e3d6764fe1f3f7cbb3579eba -
$ echo 'P@ssword1' | md5sum
0a43c426e3d6764fe1f3f7cbb3579eba -
$
zamiast prosić o nieotrzymanie go (i mam nadzieję, że echo
działa tak samo w systemie, na którym to działa w późniejszym czasie):
$ echo -n 'P@ssword1' | md5sum
d106b29303767527fc11214f1b325fb6 -
$
Aby rozwinąć kwestię dziwactw, oecho
których wspomniałem powyżej, oto kilka:
-n
, echo
aby nie przerywać produkcji nową linią, ale niektóre mogą tego nie robić. A jeśli chcesz wydrukować -n
? Niektóre implementacje mogą się różnić w zależności od ustawień w powłoce lub środowisku.-n
lub którykolwiek z jego argumentów zawiera ukośniki odwrotne.Odpowiedzi na powyższe pytanie dotyczące używania printf zamiast echa zawierają jeszcze kilka innych, a także dalsze linki, aby przeczytać więcej, jeśli jesteś ciekawy.
Pytanie sugeruje mi coś innego, więc dla kompletności:
Istnieje oparta na MD5 metoda mieszania hasła solonego, która zastąpiła oryginalną metodę crypt () opartą na DES do użycia w /etc/shadow
. Zostało to zastąpione nowszymi rzeczami, ale jeśli kiedykolwiek spotkasz się z „hashowaniem hasła MD5” na wolności, może odnosić się do tego, a nie zwykłego MD5.
Te skróty oparte na MD5 są oznaczone prefiksem $1$
i można je obliczyć za pomocąopenssl passwd -1
Możesz to łatwo zrobić za pomocą echo
i md5sum
:
echo -n "password" | md5sum
-n
echo
echo -n lolwut | md5sum
05a208028929fd77cfb5b08096a837df
echo lolwut | md5sum
f291ceceddd9e13a0ab68cf1829ef583