Many people think that watermarks ruin images, so we wanted to create a way to tag an image with a signature of its creator/distributor without spoiling the visual appearance.

What it does

First our application takes a png/jpg file and encrypts a string (artist signature) within the file by uniquely altering each pixel value by a very small amount. This encrypted image will be the presented artwork (on sights such as Each image will have an associated alphanumeric value that is the hash of its original file. Therefore, only the original creator and/or distributor is the only person that can provide the correct key and see the correct signature (their own). Potential attackers would be unable to guess the correct hash to falsely verify their ownership of the artwork and even if they were able to that hash would show the signature of the true owner anyway.

How we built it

For the encryption we used a python script to modify our image files and create an encrypted file. For the user interface and ownership verification, we wrote a chrome extension that uses javascript to decrypt the image using a potential key and check the hash code of the key to see if its correct

Challenges we ran into

Parsing and encrypting png files with unique formats. Translating our original python decryption code to javascript so we could use it in the browser.

Accomplishments that we're proud of

Successfully encrypting and decrypting PNG/JPG files. coupling Chrome extension interface with decryption algorithm.

What we learned

Many social media sights compress images posted. Compression is lossless if the image is a png, but lossy if it is a jpg.

What's next for Anonymark

There is a market for this type of product on sights such as devian art. As more and more art is shared online it is crucial to prevent plagiarism.

Share this project: