Pracuję nad projektem, w którym muszę mieć zestaw ograniczeń haseł, które obejmują plik haseł niedozwolonych (Wszystkie popularne hasła, takie jak "abc", " abcdef "," 12345 "" hasło "itp.) Plik haseł będzie składać się z około 10000-15000 słów.Jak zapisać i wyszukać listę "Zablokowanych haseł"
Teraz chcę się upewnić, że gdy użytkownik ustawia/zmienia hasło, nie istnieje na liście. Myślałem o używaniu słownika (lub mapy) w Javie (z wiadrami jako "A", "B", "C" .... "Z", "NUMBERS", "SPECIAL_CHARS"), więc po prostu sprawdzam pierwszy znak, a następnie wyszukaj odpowiednie wiadro. Ale nie jestem pewien, jaki rodzaj wykonania mogę z tego wyciągnąć.
Wszelkie sugestie dotyczące pracy z listą zabronionych haseł ... Jakieś inne wskazówki, na które należy uważać?
To było moje pierwsze przypuszczenie, ale nie jestem pewien, czy trie będzie przesadzone, czy nie ... bardziej biorąc pod uwagę, że będę musiał przechowywać cały trie w pamięci. (Czy może czegoś brakuje?) – navinpai
Przy pomocy tria można (teoretycznie) zaoszczędzić pamięć na podobne ciągi, takie jak 'password1' i' password2', które mają wspólny prefiks. Ale wtedy zdałem sobie sprawę, że każdy węzeł jest instancją i zawiera tablicę/listę dzieci ... i może wymagać więcej pamięci, jeśli masz wiele różnych prefiksów. Ponieważ modyfikacja hasła nie jest częstym zadaniem, myślę, że można wymieniać niektóre cykle procesora, aby zmniejszyć obciążenie pamięci. – Javier