In the same spirit, I made a few "just for fun" plugins for my (now abandoned) encrypted-arbitrary-storage Dropbox-like application Syncany:
The Flickr plugin [1] stores data (deduped and encrypted before upload) as PNG images. This was great because Flickr gave you 1 TB of free image storage. This was actually super cool, because the overhead was really small. No base64.
The SMTP/POP plugin [2] was even nastier. It used SMTP and POP3 to store data in a mailbox. Same for [3], but that used IMAP.
The Picasa plugin [4] encoded data as BMP images. Similar to Flickr, but different image format. No overhead here either.
All of this was strictly for fun of course, but hey it worked.
Anything that persists can be used to store arbitrary data... I remember (around a decade ago now, I'm not sure if these still exist) coming across some blogs that ostensibly had images of books, details about them, and links to buy them on Amazon and such... I only understood when I came across a forum posting from someone complaining that his ebook searches were clogged with such "spam blogs", and another poster simply told him to look more carefully at those sites, but not to say anything more about his discoveries. You can probably guess what you got if you saved the surprisingly large "full-size" cover image from those blogs and opened it in 7zip!
I feel less hesitant about revealing this now, given how long ago it was and that more accessible "libraries" are now available.
IIRC the “mods are asleep, post […]” 4chan meme originally came from “mods are asleep, post high res” threads where to an outside observer they were just posting high-resolution images of inane things, but there was actually steganography of some sort going on to hide child porn (I think) inside the files.
I can't remember if I tried, but it's important that you get the exact data back that you put in, which is why JPEG obviously won't work.
BMP is the easiest to encode/decode because it's literally a bitmap of RGB, no fancy compression and such, which, if you're storing arbitrary data is obviously not necessary.
PNG was trickier, because of its "chunks" and generally more structure. And compression.
The Flickr plugin [1] stores data (deduped and encrypted before upload) as PNG images. This was great because Flickr gave you 1 TB of free image storage. This was actually super cool, because the overhead was really small. No base64.
The SMTP/POP plugin [2] was even nastier. It used SMTP and POP3 to store data in a mailbox. Same for [3], but that used IMAP.
The Picasa plugin [4] encoded data as BMP images. Similar to Flickr, but different image format. No overhead here either.
All of this was strictly for fun of course, but hey it worked.
[1] https://github.com/syncany/syncany-plugin-flickr
[2] http://bazaar.launchpad.net/~binwiederhier/syncany/trunk/fil...
[3] http://bazaar.launchpad.net/~binwiederhier/syncany/trunk/fil...
[4] http://bazaar.launchpad.net/~binwiederhier/syncany/trunk/fil...