0.0.4 • Published 3 years ago

pu221e v0.0.4

Weekly downloads
1
License
MIT
Repository
-
Last release
3 years ago

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 #0c7bde #f0c7bde:

ColorDecimalBinary
Red1200001100
Green12301111011
Blue22211011110

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:

ColorBinary
Red00000000
Green01110000
Blue11010000

Every character of a message is a number in computer. For example:

CharacterBinary
a01100001

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 #0671d0

ColorBinaryDecimal
Red000001106
Green01110001113
Blue11010000208

The difference between the two colors is small:

  • #0c7bde #f0c7bde
  • #0671d0 #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.