Widziałem ten maksymalny limit 16 znaków również na innych stronach. Jeśli hasło jest przechowywane w stanie mieszanym, powinno ono mieć taki sam rozmiar w bazie danych bez względu na to, jakie jest prawdziwe hasło, więc po co ograniczać? Mam nadzieję, że nie dzieje się tak dlatego, że przechowują hasła bez hasła, a 16 znaków to wielkość pola bazy danych. Naprawdę mam nadzieję, że nie.
Rincewind42,
Bruteforce z przepustką 16 znaków jest łatwiejszy niż brutalne zmuszanie do większego. (no wiesz, tam są rosyjskie strony płacące, specjalizujące się w
haszy
Jest to interesujące: limity danych IBM SQL i XML Wiersz „Dostęp hasła do źródła danych” ma maksymalną długość 32 bajtów, która ma taki sam rozmiar jak hasło 16 znaków po zastosowaniu skrótu MD5.
Rebecca Dessonville,
Rincewind42 i Dez poruszają naprawdę interesujące kwestie; żadna z tych możliwości nie jest bezpieczna.
Patrick Klingemann
2
@Dez: Zastosowanie MD5 do 17-znakowego hasła będzie nadal mieć 32 bajty. Bardziej interesującym punktem może być to, że 16 znaków w Unicode miałoby 32 bajty.
musefan
Odpowiedzi:
1
Właściwie dlatego, że kiedy md5 hasło oblicza skrót. Wtedy łańcuch ma więcej niż 16 znaków, niektóre „skróty” mogą kolidować między nimi.
Na przykład jeśli md5("noroof")daje 9ce405c98406f2f6d5326ee6b51d19cdto możliwe, że md5("ididntfixedmyroofwhenicould")może dać ten sam skrót 9ce405c98406f2f6d5326ee6b51d19cd. Pamiętaj, że skróty składają się z 32 znaków „0123456789abcdf” (w tym przypadku dla md5).
Może wymuszają 16 znaków, ponieważ algorytm obliczający skrót zapewnia, że w bazie danych nie wystąpi kolizja z wcześniej zapisanym hasłem.
Hash może zawsze powodować kolizję - jak mówisz, możliwe jest, że hasło składające się z ponad 17 znaków zderzy się z krótszym hasłem. Jednak kolizja krótkiego hasła jest tak samo mało prawdopodobna, jak kolizja krótkiego hasła, a długie hasło zniknie z kolizją z krótkim hasłem, które można zgadnąć z użyciem siły. Nie ma powodu, aby sądzić, że długie hasła częściej się kolidują niż krótkie hasła - gdyby istniał jakiś powód, by w to wierzyć, skrót i tak zostałby skutecznie złamany.
Ronald,
2
Ronald ma rację, zaakceptowana odpowiedź jest po prostu błędna. Prawdopodobieństwo kolizji łańcuchów MD5 nie zależy od ich długości.
Odpowiedzi:
Właściwie dlatego, że kiedy md5 hasło oblicza skrót. Wtedy łańcuch ma więcej niż 16 znaków, niektóre „skróty” mogą kolidować między nimi.
Na przykład jeśli
md5("noroof")
daje9ce405c98406f2f6d5326ee6b51d19cd
to możliwe, żemd5("ididntfixedmyroofwhenicould")
może dać ten sam skrót9ce405c98406f2f6d5326ee6b51d19cd
. Pamiętaj, że skróty składają się z 32 znaków „0123456789abcdf” (w tym przypadku dla md5).Może wymuszają 16 znaków, ponieważ algorytm obliczający skrót zapewnia, że w bazie danych nie wystąpi kolizja z wcześniej zapisanym hasłem.
źródło