Wpis na Sekuraku o łamaniu hasła do PDF za cztery zł odwoływał się do wpisu na Informatyku zakładowym w tym temacie. Oba opierały się o generator numerów PESEL. Rzuciłem okiem na program i stwierdziłem, że nie jest kompletny. Nie obsługuje bowiem wszystkich lat. Co gorsza C# wydał mi się średnim wyborem – uruchomienie pod Linuksem wymaga doinstalowania dodatkowych pakietów, trudniejsze w rozwijaniu.
Postanowiłem ulepszyć i napisałem własną wersję generatora numerów PESEL. Zasadnicza różnica to obsługa wszystkich lat objętych specyfikacją PESEL. Dodatkowo można generować numery PESEL dla dowolnych zakresów. Takie ficzery przydatne przy pentestach.
Program nie jest specjalnie szybki – każdy rok na moim sprzęcie to ok. 2 sekundy. Z drugiej strony nie jest tak źle z prędkością . Oryginał działał 80 sekund według autora, mój dla tych samych lat – 113 sekund[1]. Oczywiście nasze sprzęty mogą się różnić, niemniej różnica nie jest drastyczna. Poza tym, słownik generuje się raczej rzadko.
Generator numerów PESEL raczej nie będzie rozwijany. No chyba, że ktoś znajdzie błędy. Może komuś się przyda.
[1] Wszystkie czasy podaję dla uruchomienia przy pomocy PyPy.
A patrzyłeś kiedyś jakie są opcje na „złote” numery pesel? Bo teoretycznie jakaś dziewczynka w tym roku mogła dostać pesel 22222222222
Nie, bardzo ciekawe!
Tylko widzę problem ze zdefiniowaniem „złotych” numerów. Możemy spróbować to zrobić tutaj. Do głowy przychodzą mi takie kryteria jak: niewielka ilość użytych cyfr (1-3), grupowanie cyfr, naprzemienność cyfr, ciągi monotoniczne (pewnie o długości 3-6).
Mi przychodzi do głowy jeszcze ciągi palindrome.
Dodałem wstępną obsługę szukania złotych numerów. Same dwójki to chyba jedyna opcja na wszystkie cyfry jednakowe. Palindromy wyglądają interesująco. I jest ich sporo. A PESELi składających się tylko z 2 lub 3 cyfr jest już zupełne mnóstwo, więc zrezygnowałem z dodawania tego.