W systemie Linux mogę utworzyć skrót hasłowy SHA1 przy użyciu sha1pass mypassword
. Czy istnieje podobne narzędzie wiersza poleceń, które pozwala mi tworzyć sha512
skróty? To samo pytanie dla Bcrypt
i PBKDF2
.
security
password
encryption
hashsum
student
źródło
źródło
sha1sum
?sha1pass
polecenie będące częścią pakietu syslinux-common w Debianie.sha512sum
polecenie, które jest częścią coreutils i podobnieopenssl sha512
- ale nie robi to również dodatkowa funkcjasha1pass
.Odpowiedzi:
Tak, szukasz
mkpasswd
, która (przynajmniej na Debianie) jest częściąwhois
pakietu. Nie pytaj dlaczego ...Niestety moja wersja przynajmniej nie obsługuje bcrypt. Jeśli twoja biblioteka C ma, to powinna (a strona podręczna daje opcję -R, aby ustawić siłę). -R działa również na sha-512, ale nie jestem pewien, czy to PBKDF-2, czy nie.
Jeśli potrzebujesz wygenerować hasło bcrypt, możesz to zrobić uczciwie po prostu za pomocą
Crypt::Eksblowfish::Bcrypt
modułu Perl.źródło
W żadnej dystrybucji systemu Red Hat, takiej jak Fedora, CentOS lub RHEL, polecenie
mkpasswd
nie zawiera tego samego zestawu przełączników, co wersja zwykle dołączana do Debian / Ubuntu.UWAGA: Komenda
mkpasswd
jest w rzeczywistości częściąexpect
pakietu i prawdopodobnie należy jej unikać. Możesz dowiedzieć się, do którego pakietu należy, używając jednego z tych poleceń.Przykład
Obie te metody są lepsze niż używanie,
rpm
ponieważ nie trzeba instalować pakietów, aby je zlokalizować*/mkpasswd
.Obejścia
Aby obejść ten problem, możesz użyć następujących linijek Python lub Perl do wygenerowania haseł SHA-512. Zwróć uwagę, że są one solone:
Python (> = 3.3)
lub skrypty
Python (2.x lub 3.x)
Uwaga: 6 $ oznacza sha512. Obsługa tej metody określania algorytmu zależy od obsługi funkcji biblioteki crypt (3) na poziomie systemu operacyjnego (zwykle w libcrypt). Nie zależy od wersji Pythona.
Perl
W tych przykładach hasło jest ciągiem „hasło”, a solą jest „saltalt”. Oba przykłady używają 6 $, co oznacza, że chcesz używać krypt SHA-512.
źródło
crypt.mksalt(crypt.METHOD_SHA512)
do wygenerowania soli zamiast używać stałej.crypt.mksalt
jest dostępny tylko w Pythonie 3.xcrypt.mksalt
CentOS 7.1Możesz użyć
doveadm
narzędzia, które jest zawarte wdovecot
pakiecie.Przykład wyniku:
Po prostu wytnij {SHA512-CRYPT}, a otrzymasz swój haszowany łańcuch SHA512.
źródło
doveadm(jotik): Fatal: Error reading configuration: stat(/etc/dovecot/dovecot.conf) failed: Permission denied (euid=1000(jotik) egid=100(users) missing +x perm: /etc/dovecot, we're not in group 97(dovecot), dir owned by 0:97 mode=0750)
Uruchom to polecenie:
następnie wprowadź słowo, które chcesz zaszyfrować.
źródło
Aby rozwinąć powyższe obejścia @ slm, jeśli martwisz się, że ktoś zapozna się z twoją historią basha i zobaczysz hasło w postaci zwykłego tekstu, możesz wstawić
raw_input()
w python instrukcji, gdzie idą pola soli i hasła, aby wyświetlał monit o podanie hasła. Tekst nie jest maskowany podczas pisania, ale nie pojawi się w historii bash. Możesz także uruchomić polecenie z wiodącym odstępem, ale zawsze o tym zapominam.źródło
bash
aby nie zapisywać poleceń poprzedzonych spacją dodającąHISTCONTROL=ignorespace
do.bashrc
pliku. Po uruchomieniu polecenia, które chcesz wykluczyć z historii, po prostu wpisz spację, a następnie polecenie.sha512 htpasswd
Polecenie, które prosi użytkownika i hasło i generuje zwykły plik htpasswd:
Działa ze wszystkimi wersjami Pythona> 2.5.
źródło
OpenSSL ma
Pomoc mówi:
źródło
Jeśli używasz metody Python (> = 2.7) z odpowiedzi karty SIM i chcesz potwierdzić hasło przed wygenerowaniem - ponieważ hasła grubego palca ...
źródło
wersja openssl „OpenSSL 1.1.1” w systemie Linux i wersja openssl „LibreSSL 2.6.5” w systemie MacOS obsługuje md5_crypt.
Po prostu uruchom i wprowadź hasło:
lub podaj hasło w postaci zwykłego tekstu bezpośrednio do interfejsu CLI:
źródło
Możesz użyć
sha512sum
:źródło