Sikkerhet er en grunnleggende del av vår moderne tilværelse. I takt med at stadig mer av våre liv foregår på nettet, har sikkerhet blitt enda viktigere. Når vi diskuterer sikkerhet, er passord et sentralt tema.
I denne artikkelen skal vi utvikle en passordgenerator som raskt kan generere tilfeldige og sterke passord.
Hvorfor trenger vi en passordgenerator?
Det er vanskelig for oss mennesker å umiddelbart komme opp med komplekse og tilfeldige passordmønstre.
Dette er imidlertid ikke et problem for datamaskiner. De kan generere tilfeldige og sterke passord basert på våre preferanser, i løpet av sekunder. Det finnes mange passordgeneratorer tilgjengelig.
Men kan vi lage vår egen, med de tilpasningene vi ønsker?
Absolutt! Vi skal vise deg hvordan.
La oss begynne å lage en passordgenerator.
Passordgenerator 💻
Det beste med å lage vår egen passordgenerator er muligheten til å tilpasse den etter behov.
Først lager vi en passordgenerator som spør om passordlengden og genererer et tilfeldig passord som inneholder tall, bokstaver og spesialtegn.
Deretter forbedrer vi den ved å spørre om antall av hver type tegn, det vil si antall tall, bokstaver og spesialtegn.
La oss uten videre se på trinnene for å lage en passordgenerator med Python.
Trinn
- Lagre alle tegnene i en liste. Vi kan bruke strengmodulen i Python eller skrive dem inn manuelt.
- Be brukeren om å angi passordlengden.
- Bland tegnene med `random.shuffle`-metoden.
- Opprett en tom liste for å lagre passordet.
- Lag en løkke som gjentas like mange ganger som passordlengden:
- Velg et tilfeldig tegn fra alle tilgjengelige tegn med `random.choice`-metoden.
- Legg til det tilfeldige tegnet i passordet.
- Bland den resulterende passordlisten for å gjøre den enda mer tilfeldig.
- Konverter passordlisten til en streng med `join`-metoden.
- Vis passordet.
Følg disse trinnene og prøv å skrive koden selv. Hvis du ikke klarer det, trenger du ikke bekymre deg. Sjekk ut koden nedenfor.
Kode
import string import random # Tegn som skal brukes i passordgenereringen characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): # Spør brukeren om passordlengde length = int(input("Angi passordlengde: ")) # Blander tegnene random.shuffle(characters) # Plukker ut tilfeldige tegn fra listen password = [] for i in range(length): password.append(random.choice(characters)) # Blander det resulterende passordet random.shuffle(password) # Konverterer listen til en streng og skriver den ut print("".join(password)) # Kaller funksjonen generate_random_password()
Koden over er ganske selvforklarende. Vi har fulgt trinnene beskrevet tidligere. Hvis du har lest trinnene, skal du ikke ha noen problemer med å forstå koden.
Kjør koden og generer et passord. Et eksempel på output kan se slik ut:
Angi passordlengde: 10 d&amIzK%d)
Se på passordet over. Er det noen tall? Nei. Det er ingen garanti for at programmet skal inneholde tall.
Nå prøver vi å sørge for at programmet inneholder både tall og spesialtegn, ved å be brukeren om å spesifisere hvor mange tall, bokstaver og spesialtegn som skal inkluderes.
Når brukeren har angitt antall tegn av hver type, vil programmet inkludere det respektive antall tegntyper i passordet.
La oss se på koden som aksepterer antall tegn av hver type og genererer passordet.
import string import random # Tegn som skal brukes i passordgenereringen 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(): # Spør brukeren om passordlengde length = int(input("Angi passordlengde: ")) # Antall tegn av hver type alphabets_count = int(input("Angi antall bokstaver i passordet: ")) digits_count = int(input("Angi antall tall i passordet: ")) special_characters_count = int(input("Angi antall spesialtegn i passordet: ")) characters_count = alphabets_count + digits_count + special_characters_count # Sjekker om den totale lengden er korrekt if characters_count > length: print("Antall tegn er større enn passordlengden") return # Initialiserer passordet password = [] # Plukker ut tilfeldige bokstaver for i in range(alphabets_count): password.append(random.choice(alphabets)) # Plukker ut tilfeldige tall for i in range(digits_count): password.append(random.choice(digits)) # Plukker ut tilfeldige spesialtegn for i in range(special_characters_count): password.append(random.choice(special_characters)) # Hvis det totale antallet tegn er mindre enn passordlengden # Legger til tilfeldige tegn til den er lik lengden if characters_count < length: random.shuffle(characters) for i in range(length - characters_count): password.append(random.choice(characters)) # Blander det resulterende passordet random.shuffle(password) # Konverterer listen til en streng og skriver den ut print("".join(password)) # Kaller funksjonen generate_random_password()
Hva er forskjellen mellom den forrige koden og denne?
- Vi har skrevet separate løkker for hver type tegn for å legge dem til passordet.
- Det finnes to betingede kontroller for å validere det totale antall tegn opp mot passordlengden.
Vi har lagt til litt ekstra kode, men mønsteret ligner på den forrige koden. Derfor skal du ikke ha noen problemer med å forstå den.
Nå er det på tide å kjøre koden og se på output. Se følgende testkjøring:
Angi passordlengde: 10 Angi antall bokstaver i passordet: 3 Angi antall tall i passordet: 2 Angi antall spesialtegn i passordet: 3 V2(&#XlQq1
Hvis du ser på passordet som ble generert denne gangen, har det minimum antall tegn som brukeren har bedt om. Programmet har også lagt til to tilfeldige tegn for å få passordlengden til å stemme med brukerens input.
Hurra! Vi har nå en fullstendig og sterk passordgenerator! 😎
Konklusjon
Vi har sett hvordan du kan lage en passordgenerator helt fra bunnen av. Kan vi legge til flere funksjoner i den? Ja, vi kan legge til så mange vi vil. Bare sørg for at passordet som genereres er sterkt nok.
Generer passordene med koden, og bruk dem til din neste nettkonto.
Mens du gjør det, kan du også bruke tipsbilk.net sin tilfeldige passordgenerator for å lage trygge passord.
Lær hvordan du skriver kode for å sjekke om noe er likt eller ikke likt, og hvordan du bygger et tikk-tac-toe spill i Python.
Lykke til med kodingen! 👩💻