Python Kullanarak Parola Oluşturucu Nasıl Oluşturulur?

Yayınlanan: 2021-08-20

Güvenlik hayatımızın en önemli parçalarından biridir. Çoğu şeyin çevrimiçi hale gelmesiyle güvenliğin önemi her geçen gün artıyor. Güvenlik hakkında konuştuğumuzda şifreler ortaya çıkıyor.

Bu yazıda, rastgele ve güçlü şifreleri hızlı bir şekilde oluşturmamıza yardımcı olan bir şifre üreticisi oluşturacağız.

Neden bir şifre üreticisine ihtiyacımız var?

Çünkü farklı şifre kalıplarını anında düşünemiyoruz.

Ancak bilgisayarlarda durum aynı değildir. Bilgisayarlar, özelleştirmelerimize dayalı olarak saniyeler içinde rastgele ve güçlü parolalar üretebilir. Mevcut birçok şifre üreticisi var.

Beğendiğimiz özelleştirmelerle kendimizinkini yaratabilir miyiz?

Evet, kesinlikle bir tane oluşturabiliriz. Ve burada size bunu nasıl yapacağınızı göstereceğiz.

Bir şifre üreticisi oluşturalım.

Şifre Üretici

Kendi şifre üreticimizi yaratmanın en iyi yanı, onu istediğimiz gibi özelleştirebilmemizdir.

İlk olarak, şifrenin uzunluğunu soran ve rakamlar, alfabeler ve özel karakterler içeren rastgele bir şifre üreten bir şifre üreticisi oluşturacağız.

Ardından, rakam, alfabe ve özel karakter sayısı gibi her karakter türünün sayısını sorarak onu iyileştireceğiz.

Neyse lafı fazla uzatmadan Python kullanarak şifre oluşturucu oluşturma adımlarını görelim.

adımlar

  • Tüm karakterleri bir liste olarak saklayın. Python'un string modülünü kullanabilir veya hepsini yazabiliriz.
  • Kullanıcıdan şifrenin uzunluğunu girmesini isteyin.
  • Rastgele.shuffle yöntemini kullanarak karakterleri random.shuffle .
  • Parolayı saklamak için boş bir liste başlatın.
  • length zamanlarını yineleyen bir döngü yazın.
    • random.choice yöntemini kullanarak tüm karakterlerden rastgele bir karakter seçin.
    • Parolaya rastgele karakteri ekleyin.
  • Ortaya çıkan şifre listesini daha rastgele hale getirmek için karıştırın.
  • Kullanarak dizeye şifre listesini dönüştürme join yöntemi.
  • Parolayı yazdırın.

Yukarıdaki adımları takip edin ve kod yazmayı deneyin. Endişelenmeyin, kodu yazamayacak olsanız bile. Aşağıdaki kodu inceleyin.

kod

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

Yukarıdaki kod kendini açıklayıcıdır. Kod yazmak için anlatılan adımları az önce izledik. Bu nedenle, adımları okursanız kodu anlamada herhangi bir sorun yaşamazsınız.

Şimdi kodu çalıştırın ve bir şifre oluşturun. Örnek bir çıktı aşağıdaki gibi olacaktır.

 Enter password length: 10 d&amIzK%d)

Yukarıdaki çıktıdaki şifreyi gözlemleyin. rakam var mı Hayır. Çünkü programın rakam içereceğinin garantisi yoktur.

Ardından, kullanıcıdan istediği rakam, alfabe ve özel karakter sayısını girmesini isteyerek programın rakamlar ve özel karakterler içereceğini garanti etmeye çalışıyoruz.

Kullanıcı her tip için karakter sayısını girdiğinde, program ilgili karakter tipi sayısını şifreye dahil edecektir.

Her tür için karakter sayısını kabul eden ve şifreyi oluşturan kodu görelim.

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

Peki, önceki kod ile bu kod arasındaki fark nedir?

  • Şifreye eklemek için her karakter türü için ayrı döngüler yazdık.
  • Şifre uzunluğu ile toplam karakter sayısını doğrulamak için iki koşullu kontrol vardır.

Bazı ekstra kodlar ekledik. Ancak, desen önceki koda benzer. Yani anlamakta zorluk çekmezsiniz.

Şimdi, çıktıyı yürütme ve kontrol etme zamanı. Aşağıdaki test çalışmasına bakın.

 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

Bu sefer oluşturulan şifreyi görürseniz, kullanıcının istediği minimum karakter sayısına sahiptir. Ve program, şifre uzunluğunu kullanıcı girişine eşit hale getirmek için 2 rastgele karakter daha ekledi.

Yaşasın! tam bir güçlü şifre üreticimiz var.

Çözüm

Sıfırdan bir şifre üreticisinin nasıl oluşturulacağını gördük. Daha fazla özellik ekleyebilir miyiz? Evet, istediğimiz kadar ekleyebiliriz. Ancak, ortaya çıkan parolanın yeterince güçlü olduğundan emin olun.

Şifreleri koddan oluşturun ve bir sonraki çevrimiçi hesabınız için kullanın.

Ardından, Python'da bir tic-tac-toe oyununun nasıl oluşturulacağını öğrenin.

Mutlu Kodlama!