pu221e
v0.0.4
Published
Hide secrets into picture.
Downloads
5
Maintainers
Readme
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 -g
Encode 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.png
Knowing 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.