This is probably an idea obvious to everyone, and probably someone’s already implemented this, but just in case they haven’t, I’ll throw this idea out there for someone to hack on.

QR codes are two-dimensional bar codes. You can take arbitrary data and encode it into a barcode, which you can then print out. Later, you can scan it in and decode the barcode, and get the original data back.


Given that printed paper is fairly durable and unlikely to go suddenly bad, like hard disks do, this can be used for backups.

I did a quick experiment. I put 2000 bytes per barcode and printed it out in various sizes: 10, 20, 30, and 70 mm squares. Then I scanned them in. The 70 mm one was the only one that could be decoded, the others were too small and smudged.

It should be possible to fit 12 squares of just under 70 mm on an A4 sized page. That’s 24000 bytes of raw data. What could you fit in that space? Or several pages of that? It’s not dense enough for storing large amounts of data (images, audio, video), but there’s a number of important things that are not so large. Perhaps secret keys, or your Revelation keyring file?

For ease of use, it would be good to have a tool to take arbitrary binary data, compress it if possible, divide it into chunks of suitable size, number each chunk, and output a PDF with all the QR codes laid out optimally, ready for printing.