After a long time without using Wolfram, I wanted to try something different and as I love cryptography, I have choose this project.

What it does

It hides data(in string format) inside a photo

How we built it

What is this?

This project aims to show the readers, how easy it could be to hide messages inside photos with the help of Wolfram.


The program has been divided in 5 parts, 3 individual functions and 2 CloudDeploys.

The functions:

The conditional: To see if we will send the image by email or via web

InsertSecretMessage: To insert a string into a photo

ExtractSecretMessage: To get back the previously given string

The CloudDeploys: Aimed to help to generate a wonderful UI the functions and his parameters

How This Thing Works?

Steganography is a technique for hiding information in images. The hidden information is so subtle that for all practical purposes, it leaves the appearance of the image unchanged.

Convert the carrier image data into bytes and set the least significant bit of each to zero.

Convert the secret message into a list of bits corresponding to the ASCII serialization of the symbolic object representing the message.

Encode the length of the secret message into 48 bits and join this to the message. Then reshape the bit stream to match the shape of the image data. One bit per color channel per pixel.

Add the secret data to the carrier data and turn it back into an image. The image will look the same, but contain the secret message, and can be shared, in plain sight, with your recipient.

To decode the message, start by extracting the image data and discarding all but the least significant bit of each value.

The first 48 bits tell us how much secret data was encoded.

Excluding those 48 bits, turn the bit stream into 8-bit blocks.

For each block of bits, up to the end of the message, turn into a byte, then into an ASCII character. Finally de-serialize the character stream to a Wolfram Language expression representing the message payload.

Challenges we ran into

Add the ability to send the image by mail directly instead of having to download it from the page

Accomplishments that we're proud of

All of them, due to a last time issue our team only had the half time to start again. So, basically we're proud that this hack has worked and that we could developed it with a fast time

What we learned

WolframCloud API and Wolfram lenguage are intuitive and easy to learn, maybe they are not complete by now but there is only one more step

What's next for Steganography a la Wolfram

Add the support to PGP message inclusion and API for scripting tools

Built With

Share this project: