Bezpieczeństwo to jedna z najważniejszych części naszego życia. Znaczenie bezpieczeństwa rośnie z dnia na dzień, ponieważ większość rzeczy przechodzi do Internetu. Hasła wychodzą na jaw, gdy mówimy o bezpieczeństwie.
W tym artykule stworzymy generator haseł, który pomoże nam szybko generować losowe i silne hasła.
Dlaczego potrzebujemy generatora haseł?
Ponieważ nie możemy od razu wymyślić różnych wzorów haseł.
Ale inaczej jest z komputerami. Komputery mogą generować losowe i silne hasła w oparciu o nasze dostosowania w ciągu kilku sekund. Dostępnych jest wiele generatorów haseł.
Czy możemy stworzyć własne z dostosowaniami, które nam się podobają?
Tak, na pewno możemy je stworzyć. A tutaj pokażemy, jak to zrobić.
Stwórzmy generator haseł.
Generator haseł 💻
Najlepszą rzeczą w tworzeniu własnego generatora haseł jest to, że możemy go dostosować do własnych potrzeb.
Najpierw utworzymy generator haseł, który pyta o długość hasła i generuje losowe hasło zawierające cyfry, litery i znaki specjalne.
Następnie ulepszymy go, pytając o liczbę każdego rodzaju znaku, na przykład liczbę cyfr, alfabetów i znaków specjalnych.
Tak więc bez dalszych ceregieli zobaczmy, jak stworzyć generator haseł za pomocą Pythona.
Kroki
- Zapisz wszystkie znaki jako listę. Możemy użyć modułu string Pythona lub wpisać je wszystkie.
- Poproś użytkownika o wprowadzenie długości hasła.
- Potasuj znaki za pomocą metody random.shuffle.
- Zainicjuj pustą listę, aby przechowywać hasło.
- Napisz pętlę, która iteruje czasy długości.
- Wybierz losową postać spośród wszystkich znaków za pomocą metody random.choice.
- Dołącz losowy znak do hasła.
- Potasuj wynikową listę haseł, aby była bardziej losowa.
- Przekształć listę haseł w ciąg znaków za pomocą metody join.
- Wydrukuj hasło.
Wykonaj powyższe kroki i spróbuj napisać kod. Nie martw się, nawet jeśli nie jesteś w stanie napisać kodu. Sprawdź poniższy kod.
Kod
import string import random ## characters to generate password from characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## shuffling the characters random.shuffle(characters) ## picking random characters from the list password = [] for i in range(length): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()
Powyższy kod nie wymaga wyjaśnień. Właśnie wykonaliśmy opisane kroki, aby napisać kod. Tak więc nie znajdziesz żadnego problemu ze zrozumieniem kodu, jeśli przeczytasz kroki.
Teraz uruchom kod i wygeneruj hasło. Przykładowe dane wyjściowe będą następujące.
Enter password length: 10 d&amIzK%d)
Przestrzegaj hasła w powyższym wyjściu. Czy jest jakaś cyfra? Nie. Ponieważ nie ma gwarancji, że program będzie zawierał cyfry.
Następnie staramy się zagwarantować, że program będzie zawierał cyfry i znaki specjalne, prosząc użytkownika o wprowadzenie żądanej liczby cyfr, alfabetów i znaków specjalnych.
Gdy użytkownik wprowadzi liczbę znaków dla każdego typu, program włączy do hasła odpowiednią liczbę rodzajów znaków.
Zobaczmy kod, który akceptuje liczbę znaków dla każdego typu i generuje hasło.
import string import random ## characters to generate password from alphabets = list(string.ascii_letters) digits = list(string.digits) special_characters = list("[email protected]#$%^&*()") characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## number of character types alphabets_count = int(input("Enter alphabets count in password: ")) digits_count = int(input("Enter digits count in password: ")) special_characters_count = int(input("Enter special characters count in password: ")) characters_count = alphabets_count + digits_count + special_characters_count ## check the total length with characters sum count ## print not valid if the sum is greater than length if characters_count > length: print("Characters total count is greater than the password length") return ## initializing the password password = [] ## picking random alphabets for i in range(alphabets_count): password.append(random.choice(alphabets)) ## picking random digits for i in range(digits_count): password.append(random.choice(digits)) ## picking random alphabets for i in range(special_characters_count): password.append(random.choice(special_characters)) ## if the total characters count is less than the password length ## add random characters to make it equal to the length if characters_count < length: random.shuffle(characters) for i in range(length - characters_count): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()
Jaka jest więc różnica między poprzednim kodem a tym kodem?
- Napisaliśmy osobne pętle dla każdego typu znaku, aby dodać je do hasła.
- Istnieją dwa warunkowe sprawdzenia sprawdzające całkowitą liczbę znaków z długością hasła.
Dodaliśmy dodatkowy kod. Ale wzorzec jest podobny do poprzedniego kodu. Więc nie będziesz miał trudności ze zrozumieniem tego.
Teraz nadszedł czas na wykonanie i sprawdzenie danych wyjściowych. Spójrz na następujący przebieg testowy.
Enter password length: 10 Enter alphabets count in password: 3 Enter digits count in password: 2 Enter special characters count in password: 3 V2(&#XlQq1
Jeśli zobaczysz wygenerowane tym razem hasło, ma ono minimalną liczbę znaków, jakiej chce użytkownik. A program zawiera jeszcze 2 losowe znaki, aby długość hasła była równa długości wprowadzonej przez użytkownika.
Hurra! mamy kompletny generator silnych haseł.
Wniosek
Widzieliśmy, jak stworzyć generator haseł od podstaw. Czy możemy dodać do niego więcej funkcji? Tak, możemy dodać tyle, ile chcemy. Ale upewnij się, że wynikowe hasło jest wystarczająco silne.
Wygeneruj hasła z kodu i użyj ich na następnym koncie online.
W tym czasie użyj generatora losowych haseł newsblog.pl, aby utworzyć bezpieczne hasła.
Dowiedz się, jak pisać równe lub nierówne kodowi i jak zbudować grę w kółko i krzyżyk w Pythonie.
Udanego kodowania! 👩💻