Skip to content

halilibrahimd27/file-crypter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔐 file-crypter

AES-256 CBC ile dosya/klasör şifreleme — terminalden tek komut

Python License PyCryptodome

PBKDF2 (100k iter) + AES-256-CBC + per-file salt/IV · Türkçe CLI · Tek dosya, klasör, recursive

⭐ İşine yaradıysa yıldız bırak — yeni özellikler için motivasyon.


AES-256 CBC modunda şifreleme kullanan, profesyonel bir dosya şifreleme ve şifre çözme aracı.

🎯 Özellikler

  • AES-256 Şifreleme: Endüstri standardı, askeri seviye güvenlik
  • PBKDF2 Anahtar Türetme: 100,000 iterasyon ile güçlü şifre koruması
  • Salt & IV: Her dosya için rastgele tuz ve başlatma vektörü
  • Tek Dosya veya Klasör: İstediğin dosyayı veya tüm klasörü şifrele
  • İlerleme Göstergesi: Büyük dosyalar için real-time ilerleme
  • Orijinal Dosyaları Korur: Orijinal dosyalar silinmez

📦 Kurulum

1. Gerekli Kütüphaneyi Yükle

pip install pycryptodome

veya

pip install -r requirements.txt

2. Scripti Çalıştırılabilir Yap (Linux/Mac)

chmod +x file_crypter.py

🚀 Kullanım

Tek Dosya Şifreleme

python file_crypter.py encrypt-file belgem.pdf

Çıktı: belgem.pdf.encrypted

Tek Dosya Şifre Çözme

python file_crypter.py decrypt-file belgem.pdf.encrypted

Çıktı: belgem.pdf

Klasör Şifreleme (Alt klasörler dahil)

python file_crypter.py encrypt-dir ./belgeler

Sonuç: belgeler klasöründeki tüm dosyalar şifrelenir

Klasör Şifre Çözme

python file_crypter.py decrypt-dir ./belgeler

Sonuç: belgeler klasöründeki tüm .encrypted dosyaların şifresi çözülür

📋 Örnekler

Örnek 1: PDF Dosyasını Şifrele

$ python file_crypter.py encrypt-file rapor.pdf

╔══════════════════════════════════════════════════════╗
║         🔐 Güvenli Dosya Şifreleme Aracı 🔐         ║
║              AES-256 Encryption System               ║
╚══════════════════════════════════════════════════════╝

🔑 Şifrenizi girin:
Şifre: ********
Şifre (tekrar): ********

🔐 Şifreleniyor: rapor.pdf (2.45 MB)
   İlerleme: 100.0%
✅ Şifrelendi: rapor.pdf.encrypted

Örnek 2: Klasör İçeriğini Şifrele

$ python file_crypter.py encrypt-dir ./onemli_belgeler

📁 Klasör: ./onemli_belgeler
📊 Toplam dosya: 15

[1/15] 🔐 Şifreleniyor: dosya1.docx (156.78 KB)
   İlerleme: 100.0%
✅ Şifrelendi: dosya1.docx.encrypted

[2/15] 🔐 Şifreleniyor: foto.jpg (3.21 MB)
   İlerleme: 100.0%
✅ Şifrelendi: foto.jpg.encrypted

...

✅ Tamamlandı: 15/15 dosya şifrelendi

Örnek 3: Şifreli Dosyayı Aç

$ python file_crypter.py decrypt-file rapor.pdf.encrypted

🔑 Şifrenizi girin:
Şifre: ********

🔓 Şifre çözülüyor: rapor.pdf.encrypted (2.45 MB)
   İlerleme: 100.0%
✅ Şifre çözüldü: rapor.pdf

🔒 Güvenlik Özellikleri

1. AES-256 CBC Mode

  • 256-bit anahtar boyutu
  • CBC (Cipher Block Chaining) modu
  • Endüstri standardı şifreleme

2. PBKDF2 Anahtar Türetme

  • 100,000 iterasyon
  • SHA-256 hash fonksiyonu
  • Brute-force saldırılara karşı dayanıklı

3. Rastgele Salt & IV

  • Her dosya için benzersiz 32-byte salt
  • Her dosya için benzersiz 16-byte IV
  • Aynı şifre ile farklı şifreli çıktılar

4. Dosya Yapısı

[32 byte Salt] + [16 byte IV] + [Şifreli Veri]

⚠️ Önemli Notlar

  1. Şifrenizi Unutmayın!

    • Şifre olmadan dosyalarınız kurtarılamaz
    • Şifrenizi güvenli bir yerde saklayın
  2. Orijinal Dosyalar Korunur

    • Şifreleme işlemi orijinal dosyayı silmez
    • Yeni bir .encrypted dosyası oluşturur
    • İsterseniz orijinali manuel silebilirsiniz
  3. Güçlü Şifre Kullanın

    • En az 12 karakter
    • Büyük/küçük harf, rakam ve özel karakter karışımı
    • Tahmin edilemez olmalı
  4. Yedek Alın

    • Önemli dosyalarınızın yedeğini alın
    • Şifreleme öncesi test edin

🛡️ Güvenlik Kontrol Listesi

  • ✅ Şifreleme endüstri standardı (AES-256)
  • ✅ Anahtar türetme güvenli (PBKDF2)
  • ✅ Her dosya için benzersiz salt/IV
  • ✅ Padding Oracle saldırılarına karşı korumalı
  • ✅ Bellek içinde güvenli işlem
  • ✅ Hata durumunda geçici dosyaları temizler

🧪 Test Etme

Basit Test

# Test dosyası oluştur
echo "Bu bir test dosyasıdır." > test.txt

# Şifrele
python file_crypter.py encrypt-file test.txt
# Şifre: test123

# Orijinali sil
rm test.txt

# Şifre çöz
python file_crypter.py decrypt-file test.txt.encrypted
# Şifre: test123

# Kontrol et
cat test.txt

📊 Performans

  • Küçük dosyalar (<1MB): Anında
  • Orta dosyalar (1-100MB): Saniyeler içinde
  • Büyük dosyalar (>100MB): İlerleme göstergesi ile

Şifreleme hızı: ~50-100 MB/s (donanıma bağlı)

🔧 Teknik Detaylar

Kullanılan Algoritmalar

  • Şifreleme: AES-256-CBC
  • Anahtar Türetme: PBKDF2-HMAC-SHA256
  • Padding: PKCS#7
  • Random: Crypto-grade RNG

Bağımlılıklar

  • Python 3.6+
  • pycryptodome 3.19.0+

Dosya Formatı

Byte 0-31:   Salt (32 bytes)
Byte 32-47:  IV (16 bytes)
Byte 48+:    Encrypted Data (padded to AES block size)

🐛 Sorun Giderme

"ModuleNotFoundError: No module named 'Crypto'"

pip install pycryptodome

"ValueError: Padding is incorrect"

  • Yanlış şifre girdiniz
  • Dosya bozulmuş olabilir

"Permission denied"

chmod +x file_crypter.py

veya

sudo python file_crypter.py ...

📄 Lisans

Bu araç eğitim ve kişisel kullanım içindir. Kullanımdan kaynaklanan veri kayıplarından kullanıcı sorumludur.

🤝 Katkıda Bulunma

Önerileriniz ve geliştirmeleriniz için pull request gönderebilirsiniz.

⚡ Hızlı Başlangıç

# 1. Kütüphaneyi yükle
pip install pycryptodome

# 2. Dosyayı şifrele
python file_crypter.py encrypt-file gizli.txt

# 3. Şifreyi gir
# Şifre: ********
# Şifre (tekrar): ********

# 4. Şifreli dosya oluşturuldu: gizli.txt.encrypted

# 5. Şifre çöz
python file_crypter.py decrypt-file gizli.txt.encrypted

# 6. Dosyan hazır: gizli.txt

💡 İpuçları

  1. Test edin: Önce önemsiz bir dosya ile test edin
  2. Yedek alın: Önemli dosyaların yedeğini mutlaka alın
  3. Şifre yöneticisi: Şifrenizi bir şifre yöneticisinde saklayın
  4. Toplu işlem: Klasör şifreleme ile zaman kazanın
  5. Orijinalleri saklayın: Başarılı şifre çözme sonrası orijinalleri silin

⚠️ DİKKAT: Bu araç dosyalarınızı AES-256 ile şifreler. Şifrenizi kaybederseniz dosyalarınız KESİNLİKLE kurtarılamaz!

Releases

No releases published

Packages

 
 
 

Contributors

Languages