Tôi đang làm việc trên một dự án mà tôi cần có một bộ hạn chế mật khẩu bao gồm tệp mật khẩu không được phép (Tất cả các mật khẩu thông dụng như 'abc', ' abcdef ',' 12345 '' mật khẩu ', v.v.) Tệp mật khẩu sẽ bao gồm khoảng 10000-15000 từ.Cách lưu trữ và tìm kiếm danh sách 'Mật khẩu bị cấm'
Bây giờ tôi muốn đảm bảo rằng khi người dùng đặt/thay đổi mật khẩu, mật khẩu không tồn tại trong danh sách. Tôi đã nghĩ đến việc sử dụng một từ điển (hoặc bản đồ) trong Java (với các nhóm như 'A', 'B', 'C' .... 'Z', 'NUMBERS', 'SPECIAL_CHARS') để tôi chỉ kiểm tra ký tự đầu tiên và sau đó tìm kiếm nhóm tương ứng. Nhưng tôi không chắc chắn về loại hiệu suất nào tôi có thể thoát khỏi điều này.
Bất kỳ đề xuất nào để làm việc với Danh sách 'Mật khẩu bị cấm' .... Bất kỳ gợi ý nào khác để xem ra?
Đó là phỏng đoán đầu tiên của tôi, nhưng tôi không chắc liệu một trie sẽ quá mức cần thiết cho việc này hay không ... nhiều hơn nên xem xét tôi sẽ lưu toàn bộ bộ nhớ trong bộ nhớ. (Hoặc tôi đang thiếu một cái gì đó?) – navinpai
Với một trie bạn có thể (trong lý thuyết) tiết kiệm bộ nhớ cho các chuỗi tương tự như 'password1' và' password2' có chung một tiền tố. Nhưng sau đó tôi nhận ra rằng mỗi nút là một thể hiện, và nó chứa một mảng/danh sách các childrens ... một nó có thể yêu cầu bộ nhớ nhiều hơn nếu bạn có nhiều tiền tố khác nhau. Vì sửa đổi mật khẩu không phải là một nhiệm vụ rất thường xuyên, tôi nghĩ rằng bạn có thể trao đổi một số chu kỳ bộ vi xử lý cho chi phí ít bộ nhớ hơn. – Javier