Generowanie haseł – Strong password generator, generator hasła

password generator

Password generator  – „Wprowadź hasło” 🔓 – ten zwrot czytamy (jeżeli nie żyjemy w jaskini odcięci od świata) praktycznie codziennie. Hasło to forma uwierzytelnienia, która opiera się na czymś, co z założenia zna tylko użytkownik, czyli Ty lub Ja :). Hasło może być wymagane do komputera 💻, do konta w sklepie internetowym 🛒🛍️, ale również do banku 🏦. Czyli tak naprawdę jego rolą jest chronienie przed dostępem obcym, niepowołanym osobom do naszych poufnych prywatnych danych, ale również m.in. Twoich pieniędzy. Dlatego tak ważne jest, aby hasło było na tyle złożone, że będzie trudne do rozszyfrowania – W końcu nikt z nas nie chce, żeby obcy ludzie „dotykali” naszych rzeczy.

W tym materiale poopowiadam Ci o haśle, a w szczególności o cechach silnego hasła. Dowiesz się jak stworzyć swój własny generator silnego hasła.

Java – Password generator – wprowadzenie

Z tego materiału dowiesz się:

  • Czym jest hasło?
  • Jakie cechy powinno mieć silne hasło?
  • Czym jest generowanie haseł?
  • Czym jest generator hasła?
  • Co powinien robić dobry generator hasła?
  • Jak wygląda algorytm generowania silnego hasła?

Hasło (ang. password)

Hasło to ciąg znaków używany do uwierzytelniania i przyznawania dostępu m.in. do systemu komputerowego, sieci WiFi lub konta bankowego. Jest to forma uprawnienia, która opiera się na czymś, co zna tylko użytkownik. Hasła mogą być tworzone przez m.in. użytkownika lub automatycznie generowane przez stronę, na której tworzymy konto. Hasło powinno być utrzymywane w tajemnicy, aby zapobiec nieautoryzowanemu dostępowi. Ważne jest, aby wybrać silne i unikalne hasło w celu ochrony informacji osobistych i danych przed ujawnieniem.

Silne hasło (ang. strong password)

Co to właściwie znaczy, że hasło powinno być silne 💪?

Najczęściej ustawiane hasła w Polsce to m.in.: 123456, qwerty i zaq123wsx, wiele z haseł zawiera imiona – ukochanej osoby, psa, mamy, swoje – Nie brzmi to, jak dobre zabezpieczenie Twoich danych? Czasem ktoś powie, ale to tylko do Netflixa, do maila mam silniejsze – A pamiętasz, że do platform streamingowych należy, podpiąć kartę kredytową? Czy hasło 123456 jest wystarczająco dobre i trudne do złamania, aby uniemożliwić wykradzenia danych Twojej karty?

Może trochę straszę 😱 :), ale obecne realia, są, jakie są i wykradanie danych jest już na porządku dziennym.

Wiemy, już jakie hasła nie są dobre 👍. To teraz sprawdźmy, co tak naprawdę powinno cechować silne hasło:

  • Od 10 do 12 znaków — im więcej, tym lepiej.
  • Różnorodne znaki — hasło nie powinno być znanym wyrazem np. imieniem lub miastem. Najlepiej sprawdzą się łańcuchy znaków. Wykorzystaj nie tylko litery, dodaj też liczby, znaki.
  • Unikalne hasło do każdego konta — nie używaj tego samego hasła do różnych kont.
  • Pamiętaj o regularnym zmienianiu haseł.

Entropia

Zagłębiając się w zagadnienie haseł, możesz natknąć się na takie pojęcie jak „entropia”.

Entropia jest miarą losowości i nieprzewidywalności, i jest krytycznym czynnikiem w generowaniu silnych haseł. Silne hasło powinno mieć wysoką entropię, aby utrudnić napastnikom jego odgadnięcie lub złamanie.

Im więcej możliwych kombinacji znaków w haśle, tym wyższa entropia i tym silniejsze hasło.

Jednym ze sposobów zwiększenia entropii przy generowaniu hasła jest użycie kombinacji dużych i małych liter, cyfr i znaków specjalnych. Na przykład hasło składające się z 8 losowych znaków (w tym dużych i małych liter, cyfr i znaków specjalnych) ma entropię około 52 bitów, co jest obecnie uważane za wystarczająco silne dla większości zastosowań.

Menedżery haseł i mierniki siły hasła często używają entropii do pomiaru siły hasła. Mogą one również zalecać określone wymagania dotyczące długości i składu hasła, aby zapewnić, że hasła mają wystarczającą entropię i są odporne na ataki.

Należy jednak pamiętać, że sama entropia nie wystarczy, aby zagwarantować bezpieczeństwo hasła. Inne czynniki, takie jak długość hasła, losowość znaków i częstotliwość zmian hasła, również odgrywają ważną rolę w określaniu ogólnego bezpieczeństwa hasła.

Menedżer haseł

Zaleca się mieć do każdego konta inne hasło. Ja obecnie mam mnóstwo kont, co tak naprawdę równa się = mnóstwo różnych haseł. Przy generowaniu haseł, szczególnie tych losowych — mogło to, by być naprawdę trudne. Całe szczęście, ktoś już rozwiązał ten problem i mamy do dyspozycji narzędzie zwane „menedżerem haseł”.

Menedżer haseł zapamiętuje i automatycznie podstawia w określone miejsca i szyfruje je. Menedżer wymaga zapamiętania tylko jednego głównego hasła do samego menedżera. Po zalogowaniu, menedżer haseł tworzy silne hasła dla wielu innych kont.

Strong password generator – Generator silnego hasła

Tworząc silne hasło trudne do złamania, możemy wspomóc się generatorem haseł. Generator haseł to  program lub skrypt, który tworzy losowe i unikalne kombinacje znaków. Działa on na podstawie algorytmów określających zasady tworzenia haseł.

Strong password generator – Cechy dobrego generatora

Skoro już wiemy, czym jest generator haseł, to teraz czas określić jakie cechy powinien mieć taki generator, aby nasze hasło było turbo silne. Generator powinien tworzyć hasło, które jest:

  • Losowe: aby zminimalizować ryzyko odgadnięcia przez ataki słownikowe.
  • Unikalne: każde nowo wygenerowane hasło powinno być inne od poprzednich.
  • Zróżnicowane: wykorzystujące różne klasy znaków, takie jak litery, cyfry i znaki specjalne.
  • Dostosowywalne: umożliwiające ustalanie długości i customowych wymagań dotyczących haseł.

Strong password generator – Krok po kroku

Zanim weźmiemy się za napisanie naszego generatora haseł, ustalmy plan działania – czyli określmy, co chcemy, aby nasz generator robił:

  • Posiadał możliwość ustalenia wymagań hasła, tak aby program, tworzył hasła o dowolnej długości.
  • Generował hasło — poprzez łączenie ze sobą różnych rodzai znaków, zostanie utworzony losowy i wyjątkowy ciąg znaków — nasze hasło.
  • Prezentował wynik — wygenerowane hasło powinno zostać zaprezentowane użytkownikowi, który może skopiować je i użyć jako swoje nowe hasło.

Niektóre programy do generowania haseł oferują również dodatkowe usługi, takie jak: zapisywanie haseł w bezpiecznym sejfie lub informowanie o wycieku danych. My jednak skupimy się na podstawowych wyżej określonych funkcjach generatora haseł.

Strong password generator – Java

    private static final String CHAR_LOWER = "abcdefghijklmnopqrstuvwxyz";
    private static final String CHAR_UPPER = CHAR_LOWER.toUpperCase();
    private static final String NUMBER = "0123456789";
    private static final String SPECIAL_CHARACTERS = "!@#$%^&*()-_=+[{]};:'\",<.>/?\\|`~";

    public static void main(String[] args) {
        System.out.println(generatePassword(10));
    }

    public static String generatePassword(int length) {
        String characters = CHAR_LOWER + CHAR_UPPER + SPECIAL_CHARACTERS + NUMBER;
        Random random = new Random();
        char[] password = new char[length];

        for (int i = 0; i < length; i++) {
            password[i] = characters.charAt(random.nextInt(characters.length()));
        }
        return new String(password);
    }
  • Stworzyliśmy łańcuch znaków składający z wielkich oraz małych liter, znaków specjalnych, a także liczb.
  • W następnym kroku w pętli dodajemy losowe znaki z naszego łańcucha do tablicy znaków — wielkość tablicy jest zależna od wielkości, którą podaliśmy na wejściu.
  • Utworzoną tablicę z różnymi znakami przekształcamy w Stringa — tak powstało nasze silne hasło :).

Strong password generator –Podsumowanie

W tym materiale zagłębiliśmy się w zagadnienie, jakim jest hasło. Wiemy już jakie cechy powinno mieć nasze hasło, aby było trudne do złamania.

Potrafimy już stworzyć silne hasło spełniające m.in. takie cechy jak losowość czy unikalność — To wszystko dzięki generatorowi haseł. Nigdy nie lekceważ tematu haseł — Te kilka znaków często chronią bardzo ważne zagadnienia, dlatego upewnij się, że hasła, jakie używasz, są dostatecznie silne.


20+ BONUSOWYCH materiałów z programowania

e-book – „8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista”,
e-book – „Java Cheat Sheet”,
checklista – „Pytania rekrutacyjne”
i wiele, wiele wiecej!

Jak zostać programistą

[su_button url="/ebook/?r=1&utm_campaign=w_pt" target="blank" style="soft" size="8" center="yes" icon="icon: download" desc="e-book" title="Pobieram darmowy e-book"]Odbieram Dostęp Do E-Booków![/su_button]

4 komentarze
Share:

4 Comments

  1. nazwa says:

    Citation needed:
    Wiemy, już jakie hasła nie są dobre . To teraz sprawdźmy, co tak naprawdę powinno cechować silne hasło:

    Od 10 do 12 znaków — im więcej, tym lepiej.
    Różnorodne znaki — hasło nie powinno być znanym wyrazem np. imieniem lub miastem. Najlepiej sprawdzą się łańcuchy znaków. Wykorzystaj nie tylko litery, dodaj też liczby, znaki.

    —–

    Nie będę w stanie Ci dostarczyć zbyt wielu materiałów[1] w tym temacie, jednak zarówno analizatory entropii, jak i wiedza, jaką się zdobywa przez indukcję przesiadując w pobliżu ludzi zajmujących się cyberbezpieczeństwem, sugeruje mi zwrócić uwagę na to, że sugestie, jakie tu znalazłem odnośnie generowania bezpiecznych haseł, nie mają pokrycia w praktyce.

    Hasło: fHs;rz~4L!E=?heD
    …ma entropię wynoszącą 90.09

    Hasło: Sermon Unlawful Procreate Headfirst Excusable Untouched Freezable
    …ma entropię wynoszącą 90.47 bit

    [1] — https://xkcd.com/936/

    1. Dagmara Raczak says:

      Dzięki za komentarz. Każda uwaga jest dla nas wskazówką, którą bierzemy pod uwagę podczas pisania tekstów. Zdecydowanie warto było uzupełnić tekst o zagadnienie, jakim jest entropia 🙂

  2. Czepialski says:

    Materiał może okej – ale prośba o formę (konstruktywna krytyka – nie atak): spacja przez znakiem zapytania „… ?”, czasem kropki w punktach (z wielkiej litery), a czasem nie. Po pauzie („-„) nie musisz zaczynać myśli z wielkiej litery. Czy forma ma znaczenie – dobrze przedstawił na BoilingFrogs Piotrek Przybył w 2020.

    1. Dagmara Raczak says:

      Dzięki, za uwagi. Zarówno jakość tekstów, ale i forma są dla nas bardzo ważne. Dlatego staramy się ciągle rozwijać i ulepszać nasze teksty.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *