Skip to content

About

Tkinter desktop tool that splits, merges, hashes and PGP-encrypts files through one window

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

SplitnCrypt

A small Tkinter desktop app that splits a file into chunks, merges them back, checksums them, and encrypts or decrypts a file with PGP — all from one window.

I kept ending up with the same three terminal commands whenever I had to move a large file somewhere with an upload size limit: split it, sha256sum every part so I could tell whether the transfer was clean, and gpg the result. This wraps that routine in a GUI so it is one click each, and so it works the same way on a machine where I do not want to explain split -b to someone.

Features

  • Split the selected file into 1 MB parts under divided_files/, named divided_part_000, divided_part_001, …
  • Merge those parts back into merged_files/, restoring the original file extension
  • Hash either every split part or a single file you pick, printing MD5, SHA256 and SHA512 side by side
  • PGP encrypt to a recipient email using a key from your local keyring
  • PGP decrypt with a passphrase
  • Delete all outputs — one button that clears every folder and file the app created
  • Every action logs what it did to a scrollable pane, so you can see which parts were written before something failed

Tech stack

Python 3, Tkinter (standard library), python-gnupg on top of a system GnuPG 2.x install.

Running it

You need GnuPG installed and a keyring at ~/.gnupg for the PGP buttons; split, merge and hash work without it.

git clone https://github.com/ElbruzMafe/SplitnCrypt.git
cd SplitnCrypt
pip install -r requirements.txt
python SplitnCrypt.py

On Debian/Ubuntu, Tkinter and GnuPG come from the system packages:

sudo apt install python3-tk gnupg

Typical run: pick an input file with Select, hit Split File, then Hash and choose option 1 to fingerprint each part. To encrypt, type the recipient's email (it must match a public key in your keyring) and press PGP Encrypt.

Project structure

.
├── SplitnCrypt.py     # GUI plus all split/merge/hash/PGP logic
└── requirements.txt

It is a single file on purpose — about 250 lines, no packaging, so you can read the whole thing before running something that touches your keyring.

Known limitations

  • Chunk size is fixed at 1 MB in the source; it is not exposed in the UI yet.
  • Output paths are relative to whatever directory you launched the app from, and the PGP output names are fixed (pgp_encrypted.<ext> / pgp_decrypted.<ext>), so only one encrypted file can exist at a time.
  • Decrypt derives the extension from the file currently in the Input File box, so you have to leave the original selected for the names to line up.
  • Long operations run on the Tk main thread, so the window freezes on large files and there is no progress bar.
  • The passphrase lives in a plain StringVar for the lifetime of the window.
  • Merge trusts the part filenames rather than verifying hashes, so it will happily produce a truncated file if a part is missing from the middle. Comparing the hash of the merged file against the original is still a manual step.

About

Tkinter desktop tool that splits, merges, hashes and PGP-encrypts files through one window

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages