- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Bu projede, kullanıcının isteklerine göre (uzunluk, içerik) tamamen rastgele ve güçlü şifreler üreten bir Python programı yazacağız. Bu sayede, hem pratik bir araç edinmiş olacağız hem de Python'daki modül kullanımı, listeler ve döngüleri en verimli şekilde nasıl kullanacağımızı göreceğiz.
Hadi başlayalım ve siber güvenliğin ilk adımlarını Python ile atalım!
import random
import string # Harf ve rakam setlerini kolayca almak için
# 1. Tanımlamalar: Kullanılacak tüm karakter setlerini tanımla
KUCUK_HARFLER = string.ascii_lowercase
BUYUK_HARFLER = string.ascii_uppercase
RAKAMLAR = string.digits
SEMBOLLE = string.punctuation# ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
def sifre_olustur(uzunluk):
"""
Belirtilen uzunlukta, kullanıcıdan alınan kriterlere uygun şifre oluşturur.
"""
# 2. Kullanıcının hangi karakter tiplerini istediğini sor
kullanilacak_karakterler = ""
print("-" * 50)
print("Şifre Oluşturucuya Hoş Geldiniz.")
print("-" * 50)
# Kullanıcıdan onay al
kucuk_h = input("Küçük harfler kullanılsın mı? (e/h): ").lower() == 'e'
buyuk_h = input("Büyük harfler kullanılsın mı? (e/h): ").lower() == 'e'
rakamlar_k = input("Rakamlar kullanılsın mı? (e/h): ").lower() == 'e'
semboller_k = input("Semboller kullanılsın mı? (e/h): ").lower() == 'e'
# 3. Şifre havuzunu oluştur
if kucuk_h:
kullanilacak_karakterler += KUCUK_HARFLER
if buyuk_h:
kullanilacak_karakterler += BUYUK_HARFLER
if rakamlar_k:
kullanilacak_karakterler += RAKAMLAR
if semboller_k:
kullanilacak_karakterler += SEMBOLLE
# Eğer hiçbir şey seçilmezse varsayılan olarak harf kullan
if not kullanilacak_karakterler:
print("En az bir karakter seçmelisiniz. Varsayılan olarak küçük harfler kullanılıyor.")
kullanilacak_karakterler = KUCUK_HARFLER
# 4. Şifreyi Oluştur
olusturulan_sifre = ""
for _ in range(uzunluk):
# random.choice(): Belirtilen karakter setinden rastgele bir öğe seçer
rastgele_karakter = random.choice(kullanilacak_karakterler)
olusturulan_sifre += rastgele_karakter
return olusturulan_sifre
# Ana Program Çalıştırma Bloğu
if __name__ == "__main__":
while True:
try:
# Şifre uzunluğunu kullanıcıdan al
sifre_uzunlugu = int(input("\nOluşturulacak şifre uzunluğunu girin (Örn: 12): "))
if sifre_uzunlugu <= 0:
print("Uzunluk pozitif bir tam sayı olmalıdır.")
continue
break
except ValueError:
print("Geçersiz giriş. Lütfen bir sayı girin.")
yeni_sifre = sifre_olustur(sifre_uzunlugu)
print("\n" + "=" * 50)
print(f"OLUŞTURULAN ŞİFRENİZ: {yeni_sifre}")
print("=" * 50)
Bu projenin gücü, Python'daki hazır modülleri alıp kendi mantığımızla birleştirmekte yatıyor.
import)import random
import string
import random: Rastgelelik için temel araçtır. Kullanacağımız ana fonksiyon random.choice() olacak. Bu, bir listeden veya karakter dizisinden rastgele bir öğe seçmemizi sağlar.
import string: Bu, büyük/küçük harf setlerini, rakamları ve sembolleri bize hazır string'ler olarak sunan çok kullanışlı bir modüldür. (Örneğin, tüm küçük harfleri tek tek yazmak yerine string.ascii_lowercase kullanırız.)
# 3. Şifre havuzunu oluştur
if kucuk_h:
kullanilacak_karakterler += KUCUK_HARFLER
# ...
Kullanıcıya sorulan her "e" (evet) yanıtı için, ilgili karakter setini (KUCUK_HARFLER, RAKAMLAR vb.) ana şifre havuzumuz olan kullanilacak_karakterler string'ine ekliyoruz.
Bu sayede, kullanıcı isterse sadece rakamlardan oluşan, isterse tüm karakter türlerini içeren büyük ve tek bir havuz elde ediyoruz.
for _ in range(uzunluk):
rastgele_karakter = random.choice(kullanilacak_karakterler)
olusturulan_sifre += rastgele_karakter
for _ in range(uzunluk): Bu döngü, belirlediğimiz uzunluk sayısı kadar (örneğin 12 kez) çalışır. Buradaki _ sembolü, döngü sayacını kullanmayacağımızı belirtmenin yaygın bir yoludur.
Döngünün her adımında:
random.choice(kullanilacak_karakterler) ile o anki karakter havuzumuzdan bir tane rastgele karakter seçilir.
Seçilen bu karakter, olusturulan_sifre string'inin sonuna eklenir (+=).
Döngü bittiğinde, elimizde tam olarak istenen uzunlukta, rastgele karakterlerden oluşan güçlü bir şifre olur.
Zorunlu İçerik Garantisi: Daha profesyonel bir şifre oluşturucu için, havuzu oluşturduktan sonra, oluşturulan şifrenin en az bir küçük harf, en az bir rakam vb. içerdiğinden emin olmak için ek bir kontrol ekleyebilirsiniz!
Tebrikler, artık Python ile kendi güvenli şifrelerinizi üretebilirsiniz!
Yorumlar
Yorum Gönder