Wynika to z faktu, że szyfr oparty na DES (AKA „descrypt”) obcina hasła do 8 bajtów i sprawdza tylko pierwsze 8 w celu weryfikacji hasła.
Oto odpowiedź na twoje bezpośrednie pytanie, ale oto kilka ogólnych rad wynikających z twojego kontekstu:
Na szczęście z mojego czytania wynika , że MD5
w /etc/login.defs
rzeczywistości jest to md5crypt (1 $), który, choć nieco przestarzały i uznany przez autora za przestarzały , wciąż znacznie przewyższa kryptę opartą na DES (i zdecydowanie lepiej niż surowy, niesolony skrót jak zwykły MD5! Większość niesolonych skrótów można złamać na towarowych procesorach graficznych z szybkością miliardów na sekundę)
Wygląda na to, że SHA256
(właściwie sha256crypt) i SHA512
(faktycznie sha512crypt) również tam są. Zamiast tego wybrałbym jeden z nich.
Jeśli ustawisz hasło password
lub coś w ramach każdego schematu, możesz wizualnie zweryfikować, czy mój wniosek, że warianty -crypt są poprawne (tutaj przykłady pochodzą z skrótów przykładowych hashcat , wszystkie hashcat, niektóre zapakowane dla czytelność):
Niezalecane - niesolone lub starsze typy skrótów, o wiele za „szybkie” (szybkość łamania) do przechowywania hasła:
MD5 - 8743b52063cd84097a65d1633f5c74f5
SHA256 - 127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935
SHA512 - 82a9dda829eb7f8ffe9fbe49e45d47d2dad9664fbb7adf72492e3c81ebd3e2 \
9134d9bc12212bf83c6840f10e8246b9db54a4859b7ccd0123d86e5872c1e5082f
descrypt - 48c/R8JAv757A
OK - znacznie lepiej niż niesolone, bez obcinania, ale nie jest już wystarczająco odporny na brutalną siłę na nowoczesnym sprzęcie:
md5crypt - $1$28772684$iEwNOgGugqO9.bIz5sk8k/
Lepiej - stosunkowo nowoczesne skróty z dużymi solami i czynnikami roboczymi:
sha256crypt - $5$rounds=5000$GX7BopJZJxPc/KEK$le16UF8I2Anb.rOrn22AUPWvzUETDGefUmAV8AZkGcD
sha512crypt - $6$52450745$k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX/
Spośród nich tylko odszyfruj obcina się o 8. Ostatnie dwa to Twój najlepszy zakład.
(Uwaga dodatkowa: sole zawierające tylko cyfry w przykładach md5crypt i sha512crypt powyżej są tylko efektami ubocznymi tego, jak hashcat tworzy przykładowe skróty; prawdziwe, zdrowe sole są zwykle pobierane z dużo większej przestrzeni klucza).
Zauważ też, że wymienię tylko typy skrótów obsługiwane przez /etc/login.defs na tej platformie. Do ogólnego użytku, nawet sha256crypt i sha512crypt zostały zastąpione - najpierw przez bcrypt, a następnie przez prawdziwie równoległe hashe odporne na ataki, takie jak scrypt i rodzina Argon2. (Należy jednak pamiętać, że w przypadku interaktywnych loginów, które powinny zakończyć się w ciągu jednej sekundy, bcrypt jest w rzeczywistości bardziej odporny na atak niż ten drugi)