Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bina Penjana Kata Laluan Python Selamat Menggunakan Secret Lib

Bina Penjana Kata Laluan Python Selamat Menggunakan Secret Lib

Barbara Streisand
Barbara Streisandasal
2024-10-16 12:10:29110semak imbas

Build a Secure Python Password Generator Using Secret Lib

Selepas membina Penjana Kata Laluan, saya mendapat beberapa ulasan yang menakjubkan, dan dua yang menonjol bagi saya: Guillaume Ste-Marie menyokong penggunaan benih untuk meningkatkan rawak, dan Christian Ledermann juga menyokong rahsia itu harus menggantikan rawak kerana rawak tidak benar-benar rawak.

Modul rahsia menjana nombor rawak kuat secara kriptografi yang sesuai untuk mengurus data seperti kata laluan, pengesahan akaun, token keselamatan dan rahsia yang berkaitan.

Kod Penjana Kata Laluan Selamat Lengkap

Mari kita mulakan dengan melihat keseluruhan kod untuk penjana kata laluan selamat kami. Jangan risau jika ia kelihatan menakutkan; kami akan memecahkannya baris demi baris dalam bahagian seterusnya.

    import secrets
    import string

    def generate_password(length=12):
        characters = string.ascii_letters + string.digits + string.punctuation
        password = ''.join(secrets.choice(characters) for _ in range(length))
        return password

    def main():
        print("Welcome to the Secure Password Generator!")

        try:
            length = int(input("Enter the desired password length: "))
            if length <= 0:
                raise ValueError("Password length must be positive")
        except ValueError as e:
            print(f"Invalid input: {e}")
            print("Using default length of 12 characters.")
            length = 12

        password = generate_password(length)
        print(f"\nYour generated password is: {password}")

    if __name__ == "__main__":
        main()

Sekarang, mari kita pecahkan perkara ini dan periksa setiap bahagian secara terperinci.

Mengimport Modul yang Diperlukan

    import secrets
    import string

Dua baris ini mengimport modul yang kami perlukan untuk penjana kata laluan selamat kami:

  • Modul rahsia menyediakan fungsi untuk menjana nombor rawak kuat secara kriptografi yang sesuai untuk menguruskan rahsia seperti kata laluan. Ia lebih selamat daripada modul rawak untuk tujuan kriptografi.

  • Modul rentetan menawarkan pemalar yang mengandungi pelbagai jenis aksara (huruf, digit, tanda baca). Ini menjimatkan kami daripada menaip secara manual semua kemungkinan aksara yang mungkin kami mahukan dalam kata laluan.

    Fungsi generate_password

    def generate_password(length=12):
        characters = string.ascii_letters + string.digits + string.punctuation
        password = ''.join(secrets.choice(characters) for _ in range(length))
        return password

Fungsi ini menjana kata laluan selamat kami:

  • Kami mencipta aksara rentetan yang mengandungi semua aksara yang mungkin untuk kata laluan kami.

  • Kami menggunakan secrets.choice() untuk memilih aksara secara rawak daripada rentetan ini. Ini lebih selamat daripada menggunakan random.choice() kerana ia menggunakan penjana nombor rawak selamat secara kriptografi sistem pengendalian.

  • Kami menggabungkan aksara ini menjadi satu rentetan untuk membentuk kata laluan kami.

    Fungsi utama

    def main():
        print("Welcome to the Secure Password Generator!")

        try:
            length = int(input("Enter the desired password length: "))
            if length <= 0:
                raise ValueError("Password length must be positive")
        except ValueError as e:
            print(f"Invalid input: {e}")
            print("Using default length of 12 characters.")
            length = 12

        password = generate_password(length)
        print(f"\nYour generated password is: {password}")

Fungsi ini mengendalikan interaksi pengguna:

  • Ia menggesa pengguna untuk panjang kata laluan.
  • Ia mengendalikan kemungkinan ralat (seperti input bukan angka atau nombor negatif).
  • Ia memanggil generate_password() dengan panjang yang ditentukan dan mencetak hasilnya. ## Menjalankan Skrip
    if __name__ == "__main__":
        main()

Blok ini memastikan bahawa fungsi main() hanya dipanggil jika skrip dijalankan secara langsung, bukan jika ia diimport sebagai modul.

Mempertingkatkan Penjana Kata Laluan

Berikut ialah beberapa idea untuk menambah baik penjana kata laluan anda:

  1. Set Aksara Tersuai: Benarkan pengguna menentukan jenis aksara yang mereka mahu dalam kata laluan mereka.
  2. Pemeriksa Kekuatan Kata Laluan: Laksanakan fungsi untuk menilai kekuatan kata laluan yang dijana.
  3. Berbilang Kata Laluan: Beri pengguna pilihan untuk menjana berbilang kata laluan sekaligus.
  4. Antara Muka GUI: Buat antara muka pengguna grafik menggunakan perpustakaan seperti Tkinter.
  5. Storan Kata Laluan: Laksanakan cara selamat untuk menyimpan kata laluan yang dijana, mungkin dengan penyulitan. ## Kesimpulan

Dengan menggunakan modul rahsia dan bukannya rawak, kami telah mencipta penjana kata laluan yang lebih selamat.

sumber

  • Bermula dengan Pemecah Kata Laluan
  • 20 Sambungan Python Penting untuk Kod Visual Studio
  • Menggunakan Python untuk Pengikisan Web dan Pengekstrakan Data
  • Bermula dengan Python
  • Mencipta Peta Interaktif dengan Folium dan Python

Atas ialah kandungan terperinci Bina Penjana Kata Laluan Python Selamat Menggunakan Secret Lib. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn