![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 012 Pomógł: 109 Dołączył: 26.09.2003 Skąd: nexis.pl Ostrzeżenie: (0%) ![]() ![]() |
Zwykle, dla bezpieczeństwa, trzymamy w bazie danych skrót hasła, utworzony za pomocą md5() bądź sha1(). Z myślą o tęczowych tablicach dopisujemy zwykle dodatkowo tzw. sól, która jest trzymana poza bazą danych, zwykle na serwerze.
Chciałbym jednak zwiększyć bezpieczeństwo również po stronie użytkownika i zastosować mechanizm znany z banków internetowych, czyli odpytywanie użytkownika o wybrane znaki hasła. Aby zastosować taki mechanizm jestem jednak zmuszony zapamiętać każdy znak hasła osobno. Powiedzmy, że w tym celu narzucę maksymalną długość hasła na 16 znaków i stworzę w tabeli bazy danych 16 dodatkowych pól (po 1 dla każdego znaku). Jak ma się jednak w/w sposób do tej sytuacji? Sam skrót to praktycznie żadne zabezpieczenie. Zastosowanie soli już bardziej, ale jest to wciąż bardzo słaby mechanizm. Co zrobić? |
|
|
![]() |
![]()
Post
#2
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat Bo jeśli dobrze zrozumiałem Twoje rozumowanie, to "każdy user ma swój hash i każda litera ma swój hash". Chyba chodziło o to, że każda pozycja w haśle ma własną sól, więc abababab dałoby cos takiego: sha1(sól_główna + sól1 + a ) sha1(sól_główna + sól2 + b ) sha1(sól_główna + sól3 + a ) sha1(sól_główna + sól4 + b ) sha1(sól_główna + sól5 + a ) sha1(sól_główna + sól6 + b ) sha1(sól_główna + sól7 + a ) sha1(sól_główna + sól8 + b ) i wtedy dla liter a na pozycjach 1,3,5 i 7 hasze będą inne, analogicznie dla liter b. Ten post edytował blooregard 4.09.2009, 13:35:33 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 10:52 |