- 🇪🇸 Español
Command-line tool to split files into multiple parts and reconstruct them later. Supports ZIP compression with AES-256 encryption.
- Split any file into N equal parts
- Optional ZIP compression with AES-256 encryption
- Automatic MD5 integrity verification
- Automatically detects all parts in a sequence
- Automatically detects if ZIP files require a password
- Fully interactive mode
- Option to delete fragments after reconstruction
- Python 3.6+
p7zip(only if using password protection)
macOS:
brew install p7zipLinux (Debian/Ubuntu):
sudo apt install p7zip-fullLinux (Fedora/RHEL):
sudo dnf install p7zip p7zip-pluginsLinux (Arch):
sudo pacman -S p7zip# Clone the repository
git clone https://github.com/function0xmarki/carpenter.git
cd carpenter
# Make executable
chmod +x carpenter.pypython3 carpenter.py -split file.jpgThe script will interactively ask:
- How many parts to split into?
- Protect with password? (y/n)
- If yes: asks for password and confirmation, generates
.zipfiles with AES-256 - If no: generates uncompressed
.partfiles
- If yes: asks for password and confirmation, generates
python3 carpenter.py -join file_01.partNote: You can specify any part in the sequence (not necessarily part 0). The script will automatically find all parts and detect if a password is needed.
When finished, it will ask if you want to delete the fragments.
python3 carpenter.py --helpWhen splitting photo.jpg into 3 parts:
| File | Content |
|---|---|
photo_0.part |
MD5 checksum + original filename |
photo_1.part |
Data (part 1) |
photo_2.part |
Data (part 2) |
photo_3.part |
Data (part 3) |
Part _0 contains metadata to verify integrity and restore the original filename.
| Argument | Description |
|---|---|
-split |
Split file (interactive mode) |
-join |
Join parts into original file |
-h, --help |
Show help |
- Passwords are requested interactively and not shown on screen
- When splitting with password, confirmation is required
- When joining, it automatically detects if the file requires a password
- Encryption uses AES-256 via 7-Zip
- MD5 checksum verifies the file has not been modified
MIT License