Vincent Chu Tinkerer | Leader | Innovator

Senior full stack software developer.
Passionate with technology. Worked at Electronic Arts and Apple before venturing into the startup world.

Zip/JPEG Mask and Encryption

Many people want to hide their private files one way or another. Encrypting your files with a password is one way, but people will find out that you are trying to hide something - that's why steganography is needed.

But what if you can hide your sensitive file in another zip file (and your sensitive file wouldn't show up when you open the zip with winzip), or what if you can hide your sensitive file in another jpeg file? No one would suspect that your important files are hidden in those genuine looking images or archives.

So, how to hide a file by masking a jpeg/zip file over it?

You can follow these steps:

1. Select a file to be masked (a.k.a. the masked file) using the browse button next to the field "File to be ZJMasked".

2. Select a jpeg/zip file to mask the file with (a.k.a. the masking file), by using the browse button next to the field "Mask the file with...". If you select a jpeg file then the output file would end in .jpg, and it would end in .zip if you select a zip file.

3. You can click Encode now, and save the masked file using the default file name, or supply a desired name to "Save output file as...". (Version 1.1: You can also supply a password). The encoding process can take quite a while if the files you selected are huge.

The encoded file (a.k.a. the output file) would now contain the masked file (which can be recovered by following the decode process).

If you open the masked file with winzip (in the case that the masking file is a zip file), then winzip can only display/extract the contents of the masking file. Similarly, if you open the masked file with an image viewing program (in the case that the masking file is a jpeg file), then it would only display the original masking file.

So, how to unmask an encoded file?

This should be straightforward.

1. Select the file to be unmasked by clicking the browse button next to "File to be UnZJMasked"

2. You can click Decode now, and save the decoded file using the default file name, or supply a desired name to "Save output file as...". The decoding process can take quite a while if the files you previously masked are huge. (Version 1.1: If you have encoded your file with a password, you have to supply the password when you decode. Otherwise, you will get a junk file as output)

Sample

Zip File of a rose

A genuine zip file containing just an image file of a rose....or is it? Try decoding with my program, and you will get a list of common christmas songs!

Current Release

The current release is 1.2. A progress bar is displayed during encoding and decoding of the files.

A password facility has been added in relase 1.1. The password is not saved in the file as a string, and I cannot recover it if you forget your password.

This is a freeware, and is provided in "as in" condition. Please feel free to distribute.

Encryption Strength

It's just slightly better than Cesar cipher (where effectively only 256 passwords are possible). In addition to Cesar cipher, the current scheme multiplies the encrypted characters by an invertible integer (mod 256) (If I recall properly, this is called affine transformation). It is certainly breakable by professionals.

Reference

The program works because it takes advantage of the file format layout of the Zip and JPEG file, replacing redundant information in the file with the files you are encrypting.

Standard Zip File Format Layout
Standard JPEG File Format Layout

Enjoy~!

Download File Download ZIP/JPEG Mask 1.2