Jak zapewne wiesz, hakerzy są wszędzie i chcą zhakować wszystko. Zostaliśmy poproszeni o określenie wymagań dotyczących hasła, które powstrzymają każdego hakera . Problem polega na tym, że twój szef słyszał, że płacenie za LOC jest złe i płaci ci 1800 $ - 0,03 $ * znaków wstawianych miesięcznie, abyś napisał najprostszą rzecz, która prawdopodobnie mogłaby zadziałać. Musisz więc użyć małej liczby znaków (mam nadzieję, że bardzo mała) lub w inny sposób zapomnieć o gotówce. Ponadto szefowi nie zależy na tym, jakiego języka będziesz używać.
Wymagania dotyczące dobrych haseł są podobne do tych we wspomnianym artykule, z wyjątkiem wymagań opartych na słowniku, aby uniknąć uzależnienia rozwiązania od plików zewnętrznych, nie musisz sprawdzać, czy litery są uporządkowane (Trudno zrozumieć, co to właściwie oznacza), ostatnia reguła została usunięta (Co to jest 3/4?) i nie sprawdza starych haseł.
Dokładne wymagania po usunięciu niektórych wymagań z powiązanego artykułu to:
- mieć co najmniej 8 znaków!
- nie może być dłuższy niż 12 znaków!
- mają wielkie i małe litery!
- mieć nie więcej niż 8 wielkich liter!
- mieć nie więcej niż 8 małych liter!
- mieć co najmniej 2 litery!
- mieć wiodący list!
- mieć co najmniej 1 cyfrę (y)!
- nie być twoją nazwą użytkownika!
- nie być twoją nazwą użytkownika wstecz!
- nie zawiera twojej nazwy użytkownika!
- nie zawierają odwrotnie nazwy użytkownika!
- mieć nie więcej niż 1 parę powtarzających się postaci!
- nie mieć 3 wystąpień tej samej postaci!
- nie zawiera karat (^)
- nie zawiera spacji
- nie zawiera =
- nie conatain &
- nie zawiera #
- nie zawiera ,
- nie conatain ;
- nie zawiera "
- nie zawierają>
- nie zawiera <
- nie zawiera [
- nie zawierają |
- nie zawiera )
Wszystkie błędy pisowni na tej liście pozostały bez zmian.
$ ./checkpass
Username: John
Password: L!]E2m69
OK.
$ ./checkpass
Username: John
Password: JohnnhoJ12
Nope.
$ ./checkpass
Username: JOE.smith
Password: JOE!smith123
OK.
Najkrótszy kod wygrywa pieniądze (wysyłane jako plik JPG). Musi wyświetlać monity „Nazwa użytkownika” i „Hasło:” oraz odpowiadać dokładną wiadomością.
1(cyfrę pierwszą) zamiast ell.