Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

So erstellen Sie einen zufälligen Passwortgenerator in Python

So-erstellen-Sie-einen-Zufallskennwort-Generator-in-Python
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Erfahren Sie, wie Sie mit Python einen Passwortgenerator in Python codieren, um sichere Passwörter zu generieren Modul.

Python ist eine vielseitige Programmiersprache, die Sie anwendungsübergreifend in Automatisierung, Webentwicklung, Datenanalyse und mehr verwenden können.

Sie können Python verwenden, um reale Aufgaben wie das Überwachen von Websites, das Senden von E-Mails und das Generieren von Passwörtern zu automatisieren. In diesem Tutorial erfahren Sie, wie Sie in Python einen sicheren und zufälligen Passwortgenerator erstellen.

Lass uns anfangen…

3 Reasons Why You Should Code a Password Generator in Python

Zufalls-Passwort-Generator

Waren Sie es jemals leid, sichere Passwörter zu generieren und diese im Auge zu behalten? Aus diesem Grund sollten Sie erwägen, einen Passwortgenerator in Python zu programmieren.

1. Automatisieren Sie den Prozess der Passwortgenerierung

An einem typischen Tag in Ihrem Leben besuchen Sie zahlreiche Websites – von E-Commerce-Websites bis hin zu Lern- und Programmierplattformen. Bei den meisten Websites müssen Sie sich mit Anmeldeinformationen anmelden. Dies ist eine sich wiederholende Aufgabe, die Sie mit einem Python-Skript automatisieren können.

2. Generieren Sie sichere Passwörter

Es kann eine Herausforderung sein, starke Passwörter zu finden, die den Sicherheitsbeschränkungen entsprechen. Triviale Passwörter, die nicht stark sind, sind anfällig für Sicherheitsangriffe.

Python-Passwort-Generator

Sie können Python zum programmgesteuerten Generieren verwenden Verbindung Passwörter. Auf diese Weise können Sie das Skript ausführen, um Passwörter nach Bedarf zu generieren – ohne sich Gedanken über die Sicherheit des Passworts machen zu müssen.

3. Fügen Sie Ihrem Portfolio ein praktisches Projekt hinzu

Wenn Sie ein Anfänger in der Python-Programmierung sind, sollten Sie Projekte erstellen, um Ihre Fähigkeiten zu verbessern und Ihre Programmierkenntnisse durch ein Portfolio zu demonstrieren.

Neben einem einfachen Python-Skript können Sie es weiter anpassen und als PyPI-Paket veröffentlichen. Sie können auch eine grafische Benutzeroberfläche mit Bibliotheken wie Tkinter und vielem mehr hinzufügen!

Auf diese Weise können Sie Ihren eigenen Passwortgenerator codieren, um Ihre Passwörter sicher zu generieren und zu verwalten – über die verschiedenen Websites hinweg.

The Random Module in Python: Is It Secure Enough?

Python Zufallsmodul bietet auch Funktionen, mit denen Sie aus einem Alphabet sampeln und konstruieren können scheinbar zufällige Sequenzen. Das Zufallsmodul generiert pseudozufällig Sequenzen. Lassen Sie uns analysieren, was Pseudozufälligkeit bedeutet.

Der Begriff Pseudozufall bedeutet, dass, obwohl die Sequenz zufällig erscheinen mag, sie es tatsächlich ist deterministisch.

Wenn Sie also einen zufälligen Startwert festlegen, ergibt das Zufallsmodul dieselbe Sequenz auf Ihrem Computer und für jeden, der dasselbe Skript mit demselben Startwert ausführt.

Aus diesem Grund sollten Sie random nicht für Anwendungen verwenden, bei denen Sicherheit wichtig ist, wie z. B. Passwörter.

Also, wann können Sie die verwenden random Modul?

Für alle nicht sensiblen Anwendungen können Sie das Zufallsmodul verwenden. Zum Beispiel gibt es in einer Klasse mit 40 Schülern drei Sätze von Fragebögen, A, B und C. Sie möchten jedem Schüler zufällig ein bestimmtes Set zuweisen.

2

In diesem Fall können Sie verwenden random.choice() innerhalb eines Listenverständnisausdrucks, wie unten gezeigt:

import random

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

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

📑 Schlüssel zum Mitnehmen: Für statistische Simulationen können Sie die verwenden random Modul; Verwenden Sie für sensible Anwendungen die secrets Modul.

Python Secrets Module: Your Key to Secure Passwords

Der Python-Verbesserungsvorschlag, PEP 506, rät Entwicklern, die secrets Modul immer dann, wenn eine Sequenz kryptografisch sicher sein soll, wie z. B. Passwörter und Sicherheitstoken.

python-secrets-password-generator

Dieses secrets Das Modul verfügt über mehrere integrierte Funktionen, mit denen Sie Folgendes tun können:

  • Generieren Sie Folgen von Zufallszahlen, die für kryptografische Anwendungen sicher sind.
  • Verwenden Sie Funktionen wie choice(), randbits() und randbelow() um sichere Zufallszahlen zu generieren.
  • Generieren Sie Token für das Zurücksetzen von Passwörtern, temporäre URLs und mehr.

How to Code a Password Generator in Python [in 4 Steps]

Voraussetzungen:: Sie müssen Python 3.6 oder eine neuere Version installiert haben, um zusammen mit diesem Tutorial zu programmieren. Sie können den Beispielcode auch in ausführen Der Online-Python-Code-Editor von Geekflare.

Schritt 1: Importieren Sie die erforderlichen Module

Als ersten Schritt importieren wir die secrets Modul. Dieses Modul ist in die Python-Standardbibliothek integriert, sodass Sie es wie folgt importieren können:

import secrets

Lassen Sie uns auch Pythons eingebautes importieren string Modul:

import string

Schritt 2: Definieren Sie das Alphabet

Der nächste Schritt besteht darin, das Alphabet zu definieren. Alphabet bezeichnet die Menge aller Zeichen, die wir für die Passwortgenerierung berücksichtigen werden. Hier soll es folgendes enthalten: Klein- und Großbuchstaben sowie Sonderzeichen.

Alphabet

Dieses string -Modul stellt Zeichenfolgenkonstanten bereit, mit denen wir das Alphabet definieren können. Wir verwenden die folgenden Zeichenfolgenkonstanten:

  • Dieses ascii_letters ist eine Verkettung von Kleinbuchstaben und Großbuchstaben.
  • Dieses digits Konstante ist die Zeichenfolge, die die Zahlen 0 bis 9 enthält: '0123456789'.
  • Dieses punctuation Konstante ist die Zeichenfolge aller Sonderzeichen.
letters = string.ascii_letters
digits = string.digits
special_chars = string.punctuation

Lassen Sie uns zum Schluss die obigen String-Konstanten verketten, um das Alphabet zu erhalten.

alphabet = letters + digits + special_chars

Schritt 3: Legen Sie die Länge des Passworts fest; Generieren Sie ein Passwort

Lassen Sie uns die Länge des Passworts in der Variablen speichern, pwd_length. In diesem Beispiel hat die Passwortzeichenfolge die Länge 12.

pwd_length = 12

▶️ Führen Sie nun die folgende Codezelle aus, um ein Passwort zu generieren:

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

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

Der obige Code macht folgendes:

  • Die Passwortzeichenfolge pwd ist zunächst ein leerer String.
  • Wir wissen, dass secrets.choice(alphabet) gibt ein zufällig ausgewähltes Zeichen aus der zurück alphabet.
  • Wir nutzen die join() Methode, um dieses Zeichen zu der hinzuzufügen pwd Schnur. Da wir keine Leerzeichen zwischen den Zeichen haben wollen, geben wir als Trennzeichen an ''.
  • Um die obigen Schritte zum Generieren eines Passworts zu wiederholen, verwenden wir eine Schleife, die so viele Iterationen durchläuft, wie das Passwort lang ist.

Schritt 4: Passen Sie Ihre Passwörter basierend auf Einschränkungen an

Sie können die Passwortgenerierung anpassen, indem Sie prüfen, ob sie bestimmte Einschränkungen erfüllt.

Lassen Sie uns beispielsweise prüfen, ob die generierte Passwortzeichenfolge der Länge 12 die folgenden Einschränkungen erfüllt:

  • Die Zeichenfolge pwd sollte mindestens ein Sonderzeichen enthalten.
  • Es sollte mindestens zwei Ziffern enthalten.

Im folgenden Code-Snippet können Sie die Bedingung ändern, dass die if -Anweisung gemäß den von Ihnen definierten Einschränkungen überprüft.

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)
# Sample output
lX]{`y47pM4t

In der obigen Codezelle verwenden wir an unendliche While-Schleife das läuft so lange wie der passwortstring pwd erfüllt die Auflagen nicht. Wenn das generierte Passwort, pwd die Bedingungen erfüllt, brechen wir aus der Endlosschleife aus.

Hier ist der vollständige Code für den Python-Passwortgenerator:

# necessary imports
import secrets
import string

# define the alphabet
letters = string.ascii_letters
digits = string.digits
special_chars = string.punctuation

alphabet = letters + digits + special_chars

# fix password length
pwd_length = 12

# generate a password string
pwd = ''
for i in range(pwd_length):
  pwd += ''.join(secrets.choice(alphabet))

print(pwd)

# generate password meeting constraints
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)

Fazit

Herzlichen Glückwunsch zum Abschluss dieses Tutorials! 🎉Du hast jetzt gelernt, wie man einen Passwortgenerator in Python programmiert.

  • Um kryptografisch sichere Passwörter zu generieren, sollten Sie die verwenden Modul und nicht zufällig Modul.
  • Ein starkes Passwort sollte ausreichend lang und zufällig sein, da es nicht einfach vorhergesagt oder generiert werden kann. Es sollte eine Kombination aus Groß- und Kleinbuchstaben, Ziffern und Sonderzeichen sein.
  • Python wird mit einem eingebauten Schnur Modul, das alle Buchstaben, Ziffern und Sonderzeichen in den Konstanten bereitstellt ASCII-Buchstaben, Ziffern und Interpunktion, beziehungsweise. Verwenden Sie die Syntax: string.konstante um auf diese String-Konstanten zuzugreifen.
  • Sie können die obigen Konstanten verwenden, um ein Alphabet (ein Satz aller Zeichen) für die Passwortgenerierung zu definieren.
  • Sobald Sie ein Alphabet definiert haben, können Sie verwenden geheimnisse.wahl() um ein zufälliges Zeichen davon abzutasten. Um dies für die Länge des Passworts zu wiederholen, können Sie eine for-Schleife verwenden.

▶️ Lies als nächstes die Liste von Python-Webservern benutzen.

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Entwicklung
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder