Bagaimana Cara Membuat Generator Kata Sandi Menggunakan Python?

Diterbitkan: 2021-08-20

Keamanan adalah salah satu bagian terpenting dalam hidup kita. Pentingnya keamanan meningkat dari hari ke hari karena sebagian besar hal akan online. Kata sandi terungkap saat kita berbicara tentang keamanan.

Pada artikel ini, kami akan membuat pembuat kata sandi yang membantu kami menghasilkan kata sandi acak dan kuat dengan cepat.

Mengapa kita membutuhkan pembuat kata sandi?

Karena kami tidak dapat memikirkan pola kata sandi yang berbeda secara instan.

Tapi, tidak demikian halnya dengan komputer. Komputer dapat menghasilkan kata sandi acak dan kuat berdasarkan penyesuaian kami dalam hitungan detik. Ada banyak generator kata sandi yang tersedia.

Bisakah kita membuat sendiri dengan kustomisasi yang kita suka?

Ya, kita pasti bisa membuatnya. Dan di sini kami akan menunjukkan cara melakukannya.

Mari kita buat pembuat kata sandi.

Pembuat Kata Sandi

Hal terbaik tentang membuat pembuat kata sandi kita sendiri adalah kita dapat menyesuaikannya sesuka kita.

Pertama, kita akan membuat generator kata sandi yang menanyakan panjang kata sandi dan menghasilkan kata sandi acak yang berisi angka, abjad, dan karakter khusus.

Selanjutnya akan kita perbaiki dengan menanyakan jumlah masing-masing jenis karakter, seperti jumlah digit, alfabet, dan karakter khusus.

Jadi, tanpa basa-basi lagi, mari kita lihat langkah-langkah membuat generator kata sandi menggunakan Python.

Langkah

  • Simpan semua karakter sebagai daftar. Kita bisa menggunakan modul string Python atau mengetik semuanya.
  • Minta pengguna untuk memasukkan panjang kata sandi.
  • Acak karakter menggunakan metode random.shuffle .
  • Inisialisasi daftar kosong untuk menyimpan kata sandi.
  • Tulis loop yang mengulangi waktu length .
    • Pilih karakter acak dari semua karakter menggunakan metode random.choice .
    • Tambahkan karakter acak ke kata sandi.
  • Acak daftar kata sandi yang dihasilkan untuk membuatnya lebih acak.
  • Ubah daftar kata sandi menjadi string menggunakan metode join .
  • Cetak kata sandi.

Ikuti langkah-langkah di atas dan coba tulis kode. Jangan khawatir, bahkan jika Anda tidak dapat menulis kodenya. Lihat kode di bawah ini.

Kode

 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()

Kode di atas cukup jelas. Kami baru saja mengikuti langkah-langkah yang dijelaskan untuk menulis kode. Jadi, Anda tidak akan menemukan masalah dalam memahami kode jika Anda membaca langkah-langkahnya.

Sekarang, jalankan kode dan buat kata sandi. Contoh outputnya akan seperti berikut.

 Enter password length: 10 d&amIzK%d)

Perhatikan kata sandi pada output di atas. Apakah ada angkanya? Tidak. Karena tidak ada jaminan bahwa program akan menyertakan angka.

Selanjutnya, kami mencoba untuk menjamin bahwa program akan menyertakan angka dan karakter khusus dengan meminta pengguna untuk memasukkan jumlah angka, huruf, dan karakter khusus yang mereka inginkan.

Ketika pengguna memasukkan jumlah karakter untuk setiap jenis, program akan memasukkan jumlah masing-masing jenis karakter ke dalam kata sandi.

Mari kita lihat kode yang menerima jumlah karakter untuk setiap jenis dan menghasilkan kata sandi.

 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()

Jadi, apa perbedaan antara kode sebelumnya dan kode ini?

  • Kami telah menulis loop terpisah untuk setiap jenis karakter untuk menambahkannya ke kata sandi.
  • Ada dua pemeriksaan bersyarat untuk memvalidasi jumlah karakter total dengan panjang kata sandi.

Kami telah menambahkan beberapa kode tambahan. Tapi, polanya mirip dengan kode sebelumnya. Jadi, Anda tidak akan menemukan kesulitan dalam memahaminya.

Sekarang, saatnya untuk mengeksekusi dan memeriksa output. Simak uji coba berikut ini.

 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

Jika Anda melihat kata sandi yang dihasilkan kali ini, itu memiliki jumlah karakter minimum yang diinginkan pengguna. Dan program telah memasukkan 2 karakter acak lagi untuk membuat panjang kata sandi sama dengan input pengguna.

Hore! kami memiliki generator kata sandi lengkap yang kuat.

Kesimpulan

Kami telah melihat cara membuat pembuat kata sandi dari awal. Bisakah kita menambahkan lebih banyak fitur ke dalamnya? Ya, kita bisa menambahkan sebanyak yang kita mau. Tapi, pastikan password yang dihasilkan cukup kuat.

Hasilkan kata sandi dari kode dan gunakan untuk akun online Anda berikutnya.

Selanjutnya, cari tahu cara membuat game tic-tac-toe dengan Python.

Selamat Mengkode!