![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 30.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam pytanie odnośnie systemów informatycznych opartych o bazy danych. W bazie będą trzymane hashe starych haseł użytkowników, aby uniemożliwić użytkownikom możliwość ustawienia takiego samego hasła jak poprzednie.
Jak to najlepiej rozwiązać? I: tabela users, w której trzymani są użytkownicy oraz pole password w niej oraz druga tabela users_passwords, do której będzie przenoszony obecny hash hasła w przypadku jego zmiany czy II: tabela users_passwords, w której będą trzymane obecne oraz stare hasła, zaś w tabeli users w polu password będzie wskazane tylko id hasła w tabeli users_passwords Które rozwiązanie wydaje się być bardziej odpowiednie? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Pierwwsze rozwiązanie.
Częsciej odczytujesz hasło, niż je zmieniasz, więc wtedy niepotrzebnie ciągniesz dodatkową tabelę. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym chyba to zrobił na zasadzie łączonej. Tabela historii haseł tak aby nie można było wybrać haseł z ost. np. 30 dni, i dodatkowo zapisane obecne tam gdzie masz czyli w users
Przy ustawianiu nowego sprawdzasz tabelę historii z ost. np. właśnie 30 dni (starsze wywalasz dla bezpieczeństwa) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 305 Pomógł: 29 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jeżli tylko potrzebujesz poprzedniego hasła to wystarczy w tabeli user dodać pole old_password i nie ma chyba sensu bawić się w dodatkowe tabele.
W przypadku gdy potrzebne są inforacje o ostatnich zmianach np. z ostatnich 30 dni wtedy trzeba dodatkową tabelę. I każda zmiana hasła to nowy rekrod w tabeli password_history. Dodatkowo przydała by się też tabela normalizacyjna user->user_has_old_pass->user_old_pass |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 00:04 |