Java Encrypted Notepad (Secure File I/O)
This project is a console-based application that demonstrates File I/O operations and Data Security fundamentals in Java. It provides a simple security layer by storing user notes in an encrypted (encoded) format rather than plain text.
📋 Proje Hakkında (About the Project)
Bu uygulama, Java'nın dosya sistemine erişim yeteneklerini kullanarak verileri güvenli bir şekilde saklamayı amaçlar. Yazılım mühendisliği prensiplerinden "Sorumlulukların Ayrılması" (Separation of Concerns) ilkesine uygun olarak 3 ana modül üzerinde kurgulanmıştır.
🚀 Features (Özellikler)
- Base64 Encryption: Notes are saved in an encoded format to prevent unauthorized reading.
- Dynamic File Management: Ability to create files and read them back with automatic decoding.
- Error Handling: Robust error management using
try-catch blocks for file operations.
🛠 Technical Details (Teknik Detaylar)
- Language: Java (JDK 8+)
- Libraries:
java.nio.file, java.util.Base64, java.io
- Architecture: Modular utility-based design.
💻 How to Use (Kullanım Kılavuzu)
After running the application, you can follow these steps on the console.
Uygulamayı çalıştırdıktan sonra konsol üzerinden aşağıdaki adımları izleyebilirsiniz:
📝 Create a New Note (Yeni Bir Not Oluşturma)
-
Press 1 from the menu.
(Menüden 1 tuşuna basın.)
-
Enter the file name you want to create
(e.g., private_notes)
(Oluşturmak istediğiniz dosya adını girin.)
-
Type the note content you want to save.
(Kaydetmek istediğiniz not içeriğini yazın.)
-
The system will automatically encrypt the content and save it as a .txt file.
(Sistem içeriği otomatik olarak şifreleyip .txt dosyası olarak kaydeder.)
🔓 Read Encrypted Note (Şifreli Notu Okuma)
-
Press 2 from the menu.
(Menüden 2 tuşuna basın.)
-
Enter the file name you want to read.
(Okumak istediğiniz dosya adını girin.)
-
The application will decrypt the data and display the original text.
(Uygulama şifreyi çözer ve orijinal metni ekranda gösterir.)
🔐 Security Check (Güvenlik Kontrolü)
-
If you open the generated .txt file manually (using Notepad / TextEdit),
you will see that the content is stored in an unreadable format (Base64).
-
(Oluşturulan .txt dosyasını manuel olarak açtığınızda, içeriğin okunamaz
bir formatta (Base64) saklandığını göreceksiniz.)
📂 Project Structure (Dosya Yapısı)
src/
├── Main.java # Entry point and menu management
├── FileManager.java # File write/read services
└── SecurityUtil.java # Base64 encryption/decryption logic