Geekflare wordt ondersteund door ons publiek. We kunnen affiliate commissies verdienen met het kopen van links op deze site.
In Ontwikkeling Laatst bijgewerkt: 23 september 2023
Deel op:
Freshdesk - De gebruiksvriendelijke klantondersteuningssoftware die u helpt om klanten een heerlijke ervaring te bezorgen.

Leer om een wachtwoordgenerator in Python te coderen – om veilige wachtwoorden te genereren – met behulp van de geheimenmodule van Python.

Python is een veelzijdige programmeertaal die u kunt gebruiken voor toepassingen in automatisering, webontwikkeling, gegevensanalyse en meer.

U kunt Python gebruiken om echte taken te automatiseren, zoals het bewaken van websites, het verzenden van e-mails en het genereren van wachtwoorden. In deze handleiding leert u hoe u een veilige en willekeurige wachtwoordgenerator in Python kunt maken.

Laten we beginnen..

3 redenen waarom u een wachtwoordgenerator in Python zou moeten coderen

Random-Password-Generator

Bent u het ooit beu geweest om veilige wachtwoorden te genereren en ze bij te houden? Hier leest u waarom u zou moeten overwegen om een wachtwoordgenerator in Python te coderen.

1. Automatiseer het wachtwoordgeneratieproces

Op een doorsnee dag in uw leven bezoekt u talloze websites – van e-commerce websites tot leer- en codeerplatforms. De meeste websites vereisen dat u inlogt met uw wachtwoord. Dit is een repetitieve taak die u kunt automatiseren met een Python-script.

2. Veilige wachtwoorden genereren

Het kan een uitdaging zijn om sterke wachtwoorden te verzinnen die voldoen aan veiligheidsvereisten; triviale wachtwoorden die niet sterk zijn, zijn gevoelig voor beveiligingsaanvallen.

python-password-generator

U kunt Python gebruiken om programmatisch veilige wachtwoorden te genereren. Zo kunt u het script uitvoeren om wachtwoorden te genereren wanneer dat nodig is, zonder dat u zich zorgen hoeft te maken of het wachtwoord wel veilig is.

3. Voeg een praktisch project toe aan uw portfolio

Als u een beginnende Python-programmeur bent, moet u projecten bouwen om uw vaardigheden aan te scherpen en uw programmeerkennis te laten zien in een portfolio.

Naast een eenvoudig Python-script kunt u het verder aanpassen en publiceren als een PyPI-pakket. U kunt ook een grafische gebruikersinterface toevoegen met bibliotheken zoals Tkinter, en nog veel meer!

Op deze manier kunt u uw eigen wachtwoordgenerator coderen-om veilig uw wachtwoorden te genereren en beheren-voor verschillende sites.

De willekeurige module in Python: Is het veilig genoeg?

De willekeurige module in Python biedt ook functies waarmee u uit een alfabet kunt putten en schijnbaar willekeurige reeksen kunt maken. De random module genereert pseudo-willekeurige reeksen. Laten we nagaan wat pseudo-willekeurigheid betekent.

De term pseudo-willekeurig betekent dat hoewel de sequentie willekeurig lijkt, deze in werkelijkheid deterministisch is.

Als u dus een willekeurige zaadwaarde instelt, dan zal de random module dezelfde sequentie opleveren op uw machine en voor iedereen die hetzelfde script met dezelfde zaadwaarde uitvoert.

Dit is de reden waarom u random niet zou moeten gebruiken voor toepassingen waarbij beveiliging belangrijk is, zoals wachtwoorden.

Dus wanneer kunt u de random module gebruiken?

Voor alle toepassingen die niet gevoelig zijn, kunt u de random module gebruiken. Er zijn bijvoorbeeld drie sets met vragenlijsten, A, B en C, in een klas met 40 studenten. U wilt aan elke leerling willekeurig een bepaalde set toewijzen.

2

In dit geval kunt u random.choice() gebruiken binnen een lijstbegripsexpressie, zoals hieronder getoond:

import random

papers = ['A','B','C']

q_list = [random.choice(papers) for i in range(40)]
print(q_list)
Voorbeelduitvoer:
['A', 'A', 'B', 'B', 'B', 'C', 'B', 'A', 'C', 'C', 'B', 
'C', 'A', 'B', 'A', 'A', 'C', 'C', 'A', 'A', 'C', 'A', 'C', 
'A', 'C', 'B', 'B', 'B', 'A', 'B', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'B']

📑 Belangrijkste afhaalmaaltijd: Voor statistische simulaties kunt u de random module gebruiken; voor gevoelige toepassingen gebruikt u de secrets module.

Python Geheimen Module: Uw sleutel tot veilige wachtwoorden

Het Python Enhancement Proposal, PEP 506, adviseert ontwikkelaars om de secrets module te gebruiken wanneer een reeks cryptografisch beveiligd moet zijn, zoals wachtwoorden en beveiligingstokens.

python-secrets-password-generator

De secrets module heeft verschillende ingebouwde functies waarmee u het volgende kunt doen:

  • Reeksen willekeurige getallen genereren die veilig zijn voor cryptografische toepassingen.
  • Gebruik functies zoals choice(), randbits(), en randbelow() om veilige willekeurige getallen te genereren.
  • Genereer tokens voor een wachtwoord reset, tijdelijke URL’s en meer.

Zo codeert u een wachtwoordgenerator in Python [in 4 stappen]

Vereisten: U moet Python 3.6 of een latere versie geïnstalleerd hebben om deze tutorial te kunnen volgen. U kunt de voorbeeldcode ook uitvoeren in Geekflare’s Online Python Code Editor.

Stap 1: Noodzakelijke modules importeren

Als eerste stap importeren we de secrets module. Deze module is ingebouwd in de standaardbibliotheek van Python, dus u kunt hem als volgt importeren:

import secrets

Laten we ook Python’s ingebouwde stringmodule importeren:

string importeren

Stap 2: Definieer het alfabet

De volgende stap is het definiëren van het alfabet. Het alfabet is de verzameling van alle tekens die we zullen gebruiken voor het genereren van wachtwoorden. Hier willen we dat het de volgende tekens bevat: kleine letters, hoofdletters en speciale tekens.

alphabet

De stringmodule biedt stringconstanten die we kunnen gebruiken om het alfabet te definiëren. We zullen de volgende tekenreeksconstanten gebruiken:

  • De ascii_letters is een aaneenschakeling van kleine letters en hoofdletters.
  • De cijferconstante is de tekenreeks die de getallen 0 tot en met 9 bevat: "0123456789".
  • De interpunctieconstante is de tekenreeks van alle speciale tekens.
letters = string.ascii_letters
cijfers = string.digits
speciale_tekens = string.interpunctie

Laten we tot slot de bovenstaande stringconstanten aan elkaar rijgen om het alfabet te krijgen.

alfabet = letters cijfers special_chars

Stap 3: De lengte van het wachtwoord vastleggen; Een wachtwoord genereren

Laten we de lengte van het wachtwoord opslaan in de variabele pwd_length. In dit voorbeeld is de wachtwoordstring 12 lang.

pwd_lengte = 12

▶️ Voer nu de volgende codecel uit om een wachtwoord te genereren:

pwd = ''
for i in range(pwd_length):
 pwd = ''.join(secrets.choice(alphabet))

print(pwd)
# Voorbeelduitvoer
}2:Lz,1!Gvo@

De bovenstaande code doet het volgende:

  • De wachtwoordstring pwd is aanvankelijk een lege tekenreeks.
  • We weten dat secrets.choice(alphabet) één karakter teruggeeft, willekeurig gekozen uit het alfabet.
  • We gebruiken de join() methode om dit karakter toe te voegen aan de pwd string. Omdat we geen witruimte tussen de tekens willen, geven we als scheidingsteken '' op.
  • Om de bovenstaande stappen te herhalen om een wachtwoord te genereren, gebruiken we een lus die net zoveel iteraties uitvoert als de lengte van het wachtwoord.

Stap 4: Pas uw wachtwoorden aan op basis van beperkingen

U kunt het genereren van wachtwoorden aanpassen door te controleren of ze voldoen aan bepaalde beperkingen.

Laten we bijvoorbeeld controleren of de gegenereerde wachtwoordstring van lengte 12 aan de volgende beperkingen voldoet:

  • De tekenreeks pwd moet minstens één speciaal teken bevatten.
  • Hij moet minstens twee cijfers bevatten.

In het onderstaande codefragment kunt u de voorwaarde waarop de if-instructie controleert aanpassen aan de hand van de beperkingen die u definieert.

while True:
 pwd = ''
 for i in range(pwd_length):
 pwd = ''.join(secrets.choice(alphabet))

 if (any(char in special_chars for char in pwd) and 
 sum(char in digits for char in pwd)>=2):
 break
print(pwd)
# Voorbeelduitvoer
lX]{`y47pM4t

In de bovenstaande codecel gebruiken we een oneindige while-lus die loopt zolang de wachtwoordstring pwd niet aan de beperkingen voldoet. Wanneer het gegenereerde wachtwoord pwd aan de beperkingen voldoet, breken we uit de oneindige lus.

Hier is de volledige code voor de Python wachtwoordgenerator:

# noodzakelijke imports
import secrets
import string

# definieer het alfabet
letters = string.ascii_letters
cijfers = string.digits
special_chars = string.interpunctie

alfabet = letters cijfers special_chars

# stel wachtwoordlengte vast
pwd_length = 12

# genereer een wachtwoordstring
pwd = ''
for i in range(pwd_length):
 pwd = ''.join(secrets.choice(alphabet))

print(pwd)

# wachtwoord genereren dat aan beperkingen voldoet
while True:
 pwd = ''
 for i in range(pwd_length):
 pwd = ''.join(secrets.choice(alphabet))

 if (any(char in special_chars for char in pwd) and 
 sum(char in digits for char in pwd)>=2):
 break
print(pwd)

Conclusie

Gefeliciteerd met het voltooien van deze tutorial! u hebt nu geleerd hoe u een wachtwoordgenerator in Python kunt coderen.

  • Om cryptografisch veilige wachtwoorden te genereren, moet u de secrets module gebruiken en niet de random module.
  • Een sterk wachtwoord moet lang genoeg zijn en willekeurig in die zin dat het niet gemakkelijk voorspeld of gegenereerd kan worden. Het moet een combinatie zijn van hoofdletters en kleine letters, cijfers en speciale tekens.
  • Python wordt geleverd met een ingebouwde stringmodule die alle letters, cijfers en speciale tekens levert in respectievelijk de constanten ascii_letters, cijfers en interpunctie. Gebruik de syntaxis: string.constant om toegang te krijgen tot deze stringconstanten.
  • U kunt de bovenstaande constanten gebruiken om een alfabet (een verzameling van alle tekens) te definiëren voor het genereren van wachtwoorden.
  • Zodra u een alfabet gedefinieerd hebt, kunt u secrets.choice() gebruiken om er een willekeurig teken uit te kiezen. Om dit voor de lengte van het wachtwoord te herhalen, kunt u een for-lus gebruiken.

▶️ Lees vervolgens de lijst met Python webservers die u wilt gebruiken.

  • Bala Priya C
    Auteur
Met dank aan onze sponsors
Meer geweldige lezingen over ontwikkeling
Energie voor uw bedrijf
Enkele van de tools en services om je bedrijf te helpen groeien.
  • De tekst-naar-spraak tool die AI gebruikt om realistische stemmen zoals mensen te genereren.
    Probeer Murf AI
  • Web scraping, residentiële proxy, proxy manager, web unlocker, zoekmachine crawler en alles wat je nodig hebt om webgegevens te verzamelen.
    Probeer Brightdata
  • Monday.com is een alles-in-één werk OS om je te helpen bij het beheren van projecten, taken, werk, verkoop, CRM, operaties, workflows en meer.
    Probeer maandag
  • Intruder is een online kwetsbaarhedenscanner die zwakke plekken in de cyberbeveiliging van uw infrastructuur vindt om kostbare datalekken te voorkomen.
    Probeer indringer