Skip to content

khalil-kn/File_Integrity_Encryption_Tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

File Integrity & Encryption Tool

A desktop security application built in Java that provides file integrity verification and AES-256 file encryption.

Features

  • Compute MD5, SHA-256, and SHA-512 hashes for any file
  • Save a hash baseline and verify file integrity at any time
  • Detect file tampering by comparing hashes
  • Encrypt files using AES-256-CBC with a password
  • Decrypt previously encrypted files with the correct password

Security Design

  • AES-256-CBC encryption with a unique random IV per operation
  • PBKDF2WithHmacSHA256 key derivation with 65,536 iterations
  • Unique random salt per encryption to defeat rainbow table attacks
  • Salt and IV stored in the encrypted file header (non-secret)
  • Password never stored or written to disk

Architecture

model/    → Data objects (FileRecord, EncryptionResult)
core/     → Cryptographic engines (HashEngine, EncryptionEngine, FileManager)
service/  → Orchestration layer (IntegrityService, EncryptionService)
ui/       → Swing GUI (MainWindow, HashPanel, EncryptPanel)

Requirements

  • Java 17 or higher

How To Run

  1. Clone the repository
  2. Open in IntelliJ IDEA
  3. Run Main.java

Tech Stack

  • Java 21
  • Java Swing
  • javax.crypto — AES-256-CBC encryption
  • java.security.MessageDigest — MD5, SHA-256, SHA-512 hashing
  • PBKDF2WithHmacSHA256 — secure key derivation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages