Python ile Excel Dosya Şifresini Kurtarmak (Brute Force)

kusha · 03 Ağustos 2026 · 6 dk okuma

Bu site üzerindeki Excel Şifre Kaldırma aracı, sayfa/çalışma kitabı koruması ve VBA proje kilidini kaldırır — ama bir Excel dosyasını açarken sorulan gerçek "dosyayı açma şifresi" farklı bir mekanizmadır: bu, dosyanın tamamını gerçek şifreleme (AES) ile korur ve XML düzenleme gibi kısayollarla kaldırılamaz. Bu şifreyi kurtarmanın tek yolu, doğru şifreyi bulana kadar denemektir — yani brute-force.

Bu yöntemi yalnızca kendi unuttuğunuz şifreli dosyalarınızda kullanın. Başkasına ait bir dosyanın şifresini izinsiz kırmaya çalışmak hem etik hem yasal olarak sorunludur.

Neden Bu Yöntem Sınırsız Deneme Yapabiliyor?

Instagram gibi çevrimiçi servislerin aksine, yerel bir Excel dosyasını açmaya çalışırken sizi durduracak bir "3 yanlış denemeden sonra kilitlenme" mekanizması yoktur — dosya, siz doğru şifreyi bulana kadar istediğiniz kadar deneme yapmanıza izin verir. Bu yüzden Excel dosyaları, brute-force'un pratikte gerçekten işe yarayabildiği senaryolardan biridir.

Kurulum

pip install msoffcrypto-tool

Bir Parola Listesi Kullanmak

Rastgele üretmek yerine, bilinen/yaygın şifrelerden oluşan bir liste (passwords.txt, her satırda bir şifre) kullanmak, gerçekçi bir şifreyi çok daha hızlı bulmanızı sağlar — özellikle şifrenin ne olabileceğine dair bir fikriniz varsa (ör. bir kelime + rakam kombinasyonu).

import msoffcrypto

def sifreleri_dene(dosya_yolu, parola_dosyasi):
    with open(parola_dosyasi, encoding="utf-8", errors="ignore") as f:
        parolalar = [satir.strip() for satir in f]

    for parola in parolalar:
        with open(dosya_yolu, "rb") as f:
            ofis_dosyasi = msoffcrypto.OfficeFile(f)
            try:
                ofis_dosyasi.load_key(password=parola)
                with open("acilmis_dosya.xlsx", "wb") as cikti:
                    ofis_dosyasi.decrypt(cikti)
                print(f"Şifre bulundu: {parola}")
                return parola
            except Exception:
                continue

    print("Listedeki hiçbir şifre eşleşmedi.")
    return None
  • msoffcrypto.OfficeFile(f), şifreli Office dosyasını temsil eden bir nesne oluşturur.
  • load_key(password=parola), verilen şifrenin doğru olup olmadığını test eder — yanlışsa bir istisna (Exception) fırlatır, doğruysa sessizce devam eder.
  • Şifre doğruysa decrypt(...) ile dosyanın şifresiz bir kopyasını yeni bir dosyaya yazabilirsiniz.

Gerçekçi Beklenti

Bu yöntem, kısa ve/veya listede yer alan bir şifre için pratikte işe yarar. Rastgele, uzun ve karmaşık bir şifreyi (büyük/küçük harf + rakam + sembol karışımı, 12+ karakter) tüm kombinasyon uzayında denemek, gerçekçi bir sürede tamamlanamayacak kadar çok işlem gerektirir — bu durumda dosyanızı kurtarmanın pratik bir yolu kalmayabilir, bu da güçlü şifrelerin neden önemli olduğunun somut bir kanıtıdır.

Sırada Ne Var?

Güvenlik konusunu burada bırakıp, sıradaki derste OpenAI'ın Whisper modeliyle bir ses dosyasını otomatik olarak metne çevirmeyi göreceğiz.