pu221e v0.0.4
pu221e
Puzzle. Hide secrets into a picture.
How it works
Each picture has pixels. Each pixel has red, green, blue colors. Each color is a number in computer.
For example, a pixel
#f0c7bde:
| Color | Decimal | Binary |
|---|---|---|
| Red | 12 | 00001100 |
| Green | 123 | 01111011 |
| Blue | 222 | 11011110 |
I can use low digit of a color to storage message. First, I need to clean low digit. For example, clean low 4 digits of the binary of the color:
| Color | Binary |
|---|---|
| Red | 00000000 |
| Green | 01110000 |
| Blue | 11010000 |
Every character of a message is a number in computer. For example:
| Character | Binary |
|---|---|
| a | 01100001 |
Pick high 4 digits and write it into low 4 digits of red color.
Pick low 4 digits and write it into low 4 digits of green color.
It will become
#0671d0;
| Color | Binary | Decimal |
|---|---|---|
| Red | 00000110 | 6 |
| Green | 01110001 | 113 |
| Blue | 11010000 | 208 |
The difference between the two colors is small:
#f0c7bde#0671d0
If there is more then 1 character, I can also use blue color of pixels.
When I want to decode message from the pixel. I can just pick low 4 digits of each color, and splice them as a string.
How to use
Install
npm install pu221e -gEncode message into picture
pu221e e ./pure_img.png ./img_with_message.png 'This is a secret message.'Decode message from picture
pu221e d ./img_with_message.pngKnowing issues
Does not support outputting jpg format
Because of issue of jimp. It support use jpg format as input, but does not support outputting jpg format.