Skip to content

Splodgebox/encodean

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Encodean – Secure Video Encryption (Java)

Encodean is a Java-based video encryption tool that provides strong, modern encryption for video files using AES‑256‑GCM, optional Zstandard (Zstd) compression, and a password-based key derivation function (KDF).

This project is designed as a clean, single-developer MVP, but follows cryptographic best practices and is structured to scale into a production-grade system.


Features

  • 🔐 AES‑256‑GCM authenticated encryption
  • 🔑 Password-based key derivation (PBKDF2)
  • 📦 Optional Zstd compression (compress → encrypt)
  • 🧪 Full JUnit end-to-end tests (round-trip, wrong password, tamper detection)
  • 🖥️ CLI interface (encrypt / decrypt)
  • 📂 Streaming encryption (handles large video files)

Run (CLI)

Encrypt

java -jar encodean.jar encrypt input.mp4 output.enc --compress
  • --compress or -c is optional
  • Password is prompted securely at runtime

Decrypt

java -jar encodean.jar decrypt output.enc output.mp4

Example

java -jar encodean.jar encrypt movie.mov movie.enc -c
java -jar encodean.jar decrypt movie.enc movie.mov

Tests

Test files live in:

src/test/resources/
  ├─ mov_sample.mov
  └─ mp4_sample.mp4

Run all tests:

./gradlew test

Test coverage includes:

  • Round-trip encryption/decryption
  • Compression on/off
  • Wrong password failure
  • Ciphertext tamper detection

Future Improvements

  • Chunked encryption (resume / partial decrypt)
  • Argon2id KDF
  • Public-key (recipient-based) encryption
  • Versioned container header
  • Desktop UI

About

Encodean is a Java-based video encryption tool that provides strong, modern encryption for video files

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages