_.---.._
.-"' `;"--,
J""--..__ | .'J
|:`' - ..`""-.' | _ _____ __ _
|. `":J S | |/ ____| / _| | |
J: ,-. .| J | | (___ __ _| |_ ___| |__ _____ __
S (JSB) ;S | _ | |\___ \ / _` | _/ _ \ '_ \ / _ \ \/ /
J. `-' .J S ' | |__| |____) | (_| | || __/ |_) | (_) > <
S: :| J/ \____/|_____/ \__,_|_| \___|_.__/ \___/_/\_\
|'._ :| /
`c-.__'- .;S/
JSafebox encrypt your files using AES encryption. It can be used as command line tool or with a file explorer like interface.
Decrypted data is never written on the drive (except during file extraction requested by user).
With the rise of online banking, cryptocurrencies and other digital transformation, it has become mandatory to backup sensitive files. Those file need to be easily accessible, securely stored and encrypted. But lightweight, portable, cross platform vault software are surprisingly hard to come by. Password protected archive works fine but they let room for file leakage since there is no convenient way of exploring the vault without extracting the whole content. Jsafebox was made to cover these shortfalls.
JSafebox is using a very simple protocol so encrypted files can be easily read by another program, as long as you have the password. The encryption key is derived from the password using PBKDF2 hashing.
A JSafebox file contains a SHA256 integrity hash followed by blocks:
integrity hash | block 0 | block 1 | ... | block N
Each block is stored as followed:
IV | metadata length | metadata | data length | data
where IV
is the Initialization_vector of the encryption (16 bytes), metadata
is a JSON string and length
are 64 bits (8 bytes) integer (long
in Java).
The first block block 0
is the header and is the only block not encrypted and therefore, the only block without IV. The header only have metadata (data length
is 0) and contains text entries specified by the user and various additional entries including a protocol explanation, the type of encoding and the parameters of the encryption. The header's metadata is stored as JSON string and can be seen by opening the safe file with a basic text editor.
The second block block 1
is the properties. It is similar to the header except that it is encrypted and have an IV. The properties contains text entries specified by the user and stored in JSON.
The following blocks (from 2 to N) are the encrypted files.
- Command line (with the mighty tiny picocli project)
- Wildcard path support
- File explorer
- Import with Drag & Drop
- Export
with Drag & Drop(Risk of unintentional drag resulting in data leak) - Text viewer
- Image viewer (zoom and drag)
- Integrity check
- Interactive shell
This project is still under development and file loss may occur. Make sure to have a backup of your files !
You can download the latest version of JSafebox here
JSafebox is a portable application. No installation is required. A simple double click will work on most platform. If not, open a Command Line
Interpreter (CMD on Windows, Terminal on Linux and MacOS) and start the application with java -jar jsafebox.jar
.
Like the project ? Consider making a donation
ETH & ERC-20: 0xaE247d13763395aD0B2BE574802B2E8B97074946
BTC: 18tJbEM2puwPBhTmbBkqKFzRdpwoq4Ja2a
BCH: 16b8T1LB3ViBUfePCMuRfZhUiZaV7tUxGn
LTC: Lgi89D1AmniNS8cxyQmXJhKm9SCXt8fQWC
MCM: 010000000000003072746973