Skip to content

RichieOnData/caesar_cifer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Enhanced Caesar Cipher with GUI 🔐

A Java-based implementation of the Caesar Cipher encryption technique with a graphical user interface, frequency analysis, and brute-force decryption capabilities.

📸 GUI Interface

Main Application Window

Main GUI Interface

The main interface provides input fields for message and shift value, along with encryption/decryption options

Encryption Demo

Encryption Example

Example of encrypting text with a custom shift value

Decryption Demo

Decryption Example

Successful decryption of an encrypted message

🌟 Features

  • 🔒 Encryption and decryption using custom shift values
  • 🔑 Support for both uppercase and lowercase letters
  • 📊 Frequency analysis for cipher cracking
  • 💪 Brute-force decryption method
  • 🖥️ User-friendly GUI interface
  • 🔢 Support for numeric characters
  • 🚀 Dynamic shift calculation based on passwords

🛠️ Technical Implementation

Core Components

  • EnhancedCaesarCipherGUI: Main GUI class using Java Swing
  • encrypt(): Message encryption with custom shifts
  • decrypt(): Message decryption functionality
  • findShiftByFrequency(): Frequency analysis implementation
  • crackCipherBruteForce(): Brute-force decryption method

🔍 Complexity Analysis

  • Encryption/Decryption: O(n)
  • Frequency Analysis: O(n)
  • Brute-Force Cracking: O(n)
  • Password-based Shift: O(m)

🎯 GUI Features

  • 📝 Input fields for message and shift value
  • 🔄 Encrypt/Decrypt buttons
  • 🔨 Cipher cracking options
  • 📊 Results display area
  • 🎨 Clean, intuitive interface

🚀 Getting Started

  1. Clone the repository
  2. Compile the Java files
  3. Run EnhancedCaesarCipherGUI.java
  4. Enter your message and shift value
  5. Choose desired operation (encrypt/decrypt/crack)

💡 Educational Value

This project serves as an excellent introduction to:

  • Basic cryptography concepts
  • GUI development in Java
  • Algorithm implementation
  • Frequency analysis techniques

🔧 Dependencies

  • Java Development Kit (JDK)
  • Java Swing Library

📚 Author

John Anugrah Peter (23215206)

🎓 Academic Project

Developed for BDA202-3N: JAVA
B.Sc.(Data Science & Artificial Intelligence)
School of Sciences
Academic Year: 2024-25

Releases

No releases published

Packages

No packages published

Languages