Back Up Your Data On Paper With Lots Of QR Codes

QR codes are used just about everywhere now, for checking into venues, ordering food, or just plain old advertising. But what about data storage? It’s hardly efficient, but if you want to store your files in a ridiculous paper format—there’s a way to do that, too!

QR-Backup was developed by [za3k], and is currently available as a command-line Linux tool only. It takes a file or files, and turns them into a “paper backup”—a black-and white PDF file full of QR codes that’s ready to print. That’s legitimately the whole deal—you run the code, generate the PDF, then print the file. That piece of paper is now your backup. Naturally, qr-backup works in reverse, too. You can use a scanner or webcam to recover your files from the printed page.

Currently, it achieves a storage density of 3KB/page, and [za3k] says backups of text in the single-digit megabyte range are “practical.” You can alternatively print smaller, denser codes for up to 130 KB/page.

Is it something you’ll ever likely need? No. Is it super neat and kind of funny? Yes, very much so.

We’ve seen some other neat uses for QR codes before, too—like this printer that turns digital menus into paper ones. If you’ve got your own nifty uses for these attractive squares, let us know!

54 thoughts on “Back Up Your Data On Paper With Lots Of QR Codes

  1. I vaguely remember (years and years ago) seeing an advertisement or a website for a software product that turned your files into barcodes, which you could then fax (!) to other people. They could then scan the pages and reconstruct the files. But when I’ve tried to find this since I’ve never been able to. Does anyone else remember this?

  2. Anyone else remember back in the mid/late 1980s, when magazines would have “scan-able code listings” that were in what amounted to a “2-d bar code”? It wasn’t the QR code we know today, but it was similar and had comparable density.

    1. Yes, I remember buying some magazines with the bar codes printed on the pages. You were supposed to scan the bar codes into your computer and they would convert into programming code.

      I bought the magazine to use with my Atari 800 computer, but I never was able to get the required scanner to input the bar codes into my machine.

      1. I recall way back in the day when some mags had their own program for typing in long listings as columns of hex codes and their program did some simple checksum on each line. I also recall one of the toy places stopped making a controller, I think it may have been Atari and they had these controllers with a hex keypad and a joystick at radio shack for a buck a pop. I figured out the diode matrix for the keyboard and wrote a thing that sat on top of the thing from the magazine so I could use the hex keypad. Long time ago boy..

  3. I screen printed a QR code on a T-shirt for a friend of mine. He got a taker or two while out shopping.

    I wonder how many people have QR code tattoos. I might get one with my contact information when I get old enough to forget where I live.

    Supposedly a QR code isn’t readable if more than 30% of it is missing, so maybe make his/hers charms that each have half of a QR code capturing a wedding vow or something privately shared. They could be pretty small if laser engraved.

    1. Supposedly a QR code isn’t readable if more than 30% of it is missing,

      Pretty sure that depends on how much redundancy you put into the QR code in the first place.
      At lest the QR code plugin for NP++ I’m using let’s you choose that.

    2. In our wedding rings, the dates of our wedding, first date, names etc are in a qr code in the ring.
      But it is hard to read! But my wife approved it as a good idea, on the spot. Good choice

    3. It depends where you overwrite the dots, I’ve experimented with QR codes sent by officialdom (adding my own dots) and you can add surprisingly few before it breaks the checksums or whatever, and refuses to scan. In my case I was trying to stop automated scanning of my documents and force a human to do it, to delay a process enough so it timed out.

  4. This reminds me of a scene from an episode of the series Ghost in the Shell: Stand Alone Complex that had someone trying to read a page full of encoded text with their cybernetic enhanced eyes and brain implants and being stopped by the printed page being encrypted. This app could make for some unique cyberpunk cosplay props.

    1. Yep. The perp had swapped his brain-case into the body of a government minister, but because the minister had the decryption key stored in his brain rather than in his cybernetic eyes, the perp couldn’t decode to report he was trying to smuggle out of the country.

    1. My napkin calculation says: 253.7 KiB per 8×11 page.

      88 codes per page, each around 1 inch square.
      The largest QC code is type 40 and can hold 2953 bytes.
      A QC code must not be smaller than 2x2cm… make that a square inch, since a QR code needs to be surrounded by a quite area.
      Printed QR code should not exceed 300 dpi and it should not, with the Type 40 code having 177 dots.

      ref: https://en.wikipedia.org/wiki/QR_code#Information_capacity

    1. At first 3KB in a single QR-code seemed pretty much to me, so I googled, found on https://en.wikipedia.org/wiki/QR_code that 3KB code is the max size defined in the QR code standard. It’s called a version 40 QR-code, consists of a matrix of 177×177 dots and holds a whopping 30% redundancy for error correction.
      Now depending on your printer, paper and camera quality, multiple of these could be printed on a sheet of paper, heck, print double sided.
      Anyway, now realizing the existence of the version 40 code, indeed makes the project posted here less impressive. But still fun, considering it’s pointless, I do like the concept of it.

      1. I found out the same thing when the article about code in openscad that could generate QR code geometry.

        I still think it’d be really interesting to see physical objects with their designs encoded on them.

        Then someone could take a photo of a broken part and use it to directly recreate the exact object.

  5. This might be a really good way to store all those recovery codes for 2FA. Rather than keeping a text file, you can keep a sheet of these around, stored securely, and never have to hunt for a recovery code again.

    1. @Darian said: “This might be a really good way to store all those recovery codes for 2FA. Rather than keeping a text file, you can keep a sheet of these around, stored securely, and never have to hunt for a recovery code again.”

      I don’t think so Darian. Paper is pretty-much forever. Typically 2FA codes are NOT forever, they are usually temporal in nature (they expire over time, usually a relatively short time). So if a 2FA code expires, you need to get a brand new code and start over from the beginning (shred the paper Darian).

      2FA is (arguably) one of the worst things that ever happened to us. Now, if my mobile phone is lost, stolen, or otherwise compromised, I AM AS GOOD AS DEAD as a functional Human. I can’t access my bank accounts, et-cetera, ad-infinitum! Therefore now I always keep my mobile phone in a lock-box (like a hand gun), and NEVER take it outside where it may be lost or stolen. So much for the concept of a “Mobile Phone”. That “Mobile Phone” idea is gone forever now with the emergence of nonsense 2FA.

      2FA was a FAILED idea from the beginning.

      1. I think Darian is referring to the list of 10 hard-set, one-time-use, backup codes that you keep for if you lose access to your ever-changing 2FA.

        Also, I highly recommend using the browser extension known as Authenticator (github.com/Authenticator-Extension). You can grab the QR code to set up a 2FA right from within the browser, back up your list of 2FA secrets, and even redisplay any QR code to scan again onto your phone, so now you have it in two places. I use it with both Firefox and Chrome.

      2. I use 2FA everywhere, except on my phone. Phones get lost or broken and batteries die. I’d be willing to bet that more people have lost mobile phones than house keys.

        OATH 2FA isn’t bad, but it’s not a panacea either. It’s essentially just a strong password hashed with a timestamp.

        Like with essentially all encryption, you have to keep the static password secret. Most people who use 2FA apps don’t know this password, because it’s stored on the phone, but it’s there. You might as well extract it and back it up on a piece of paper, stored in a safe place. (As QR code or otherwise.) Then you can feed it into your next phone, or desktop app, or whatever.

        https://hackaday.com/2017/10/16/inside-two-factor-authentication-apps/

      3. Sounds like you misunderstood the concept. Yes, the authentication codes are very short lived, but the original keys never change.

        My authenticator app urged me to select a secure backup for these keys, such as a private nextcloud or smth like that. The file is 9kb for about 20 accounts, so printing 3 pages with QR codes doesn’t seem like a ridiculous idea to me. Just put the paper into your lock-box instead of your phone and you’ll never be locked out ;)

  6. I have an idea…. take this software as a starting point, modify it to generate an STL file to 3d print a plastic stamp that expresses the qr code on its face.

    Smash the stamp into a medallion of moist clay, then fire the clay. Voila! 5-millenium-safe data storage!

    Library of Ashurbanipal, anyone?

    Imagine an archeologist decoding a large set of clay tablets 10,000 years from now. “What is it?” a colleague asks. “I don’t know,” the archeologist answers. “I can’t figure out what they mean by ‘source code’ and what in the heck is ‘Doom’?”

    1. You could cut out the 3d print stage. Just have a bunch of needles in a grid, driven by solenoids.
      You could have a whole machine, extruding flat clay at one end, print head in the middle, and an oven at the far end.

  7. If you print text instead of QR codes you get the same density. You can fit about 4k characters in standard font size on a page. If you encode that in base 64 you get about 3kB. Of course that doesn’t have any error detection or forward error correction. Alternatively you can just print the text file itself and then you do have the redundancy of the human language itself.

    1. This is all answered in the FAQ. A couple key points:
      The 3KB is default, it can go up to 130KB/page.
      It does includes ECC.
      “qr-backup is focused on easy, future-proof restore that works.”

      I wrote a text only script to print to paper, like you suggested. I did it by using hexdump, and then adding a CRC32 to the end of the line. So if you have to type it back in, you can check each line for errors. (No automatic correction though). Being able to use a scanner or high res camera, with one (long) command, is quite impressive.

      1. “This is all answered in the FAQ.”
        I did not ask a question so there is nothing to be answered.
        The default seems too low for anything practical at 1 full page per of text page. That was my point. 130kB is much more impressive. You can store the entire bible on a few pieces of paper (4 sheets double sided).
        I’m curious what results can be achieved in microform such as microfilm or microfiche.

    2. “…If you print text instead of QR codes you get the same density. You can fit about 4k characters in standard font size on a page. If you encode that in base 64 you get about 3kB. Of course that doesn’t have any error detection or forward error correction….”

      An observation: In a sense plain-text DOES have error correction. It’s just that your brain performs that task. English is, by nature, redundant… your brain leverages preexisting knowledge of proper spelling combined with context to perform the correction.

      Here’s a highly-corrupted English text string. I’ll bet you can read it.

      Tu y00 s33 wut iem zeh ing?

  8. What has the Vesuvius Challenge taught us?

    At the very least to use inorganic inks (SLA printer exposed cyanotypes?) for x-ray contrast. And perhaps to ensure the sheets flat by keeping them pressed between refractory bricks.

  9. Is it something you’ll ever likely need? No. I

    Well, perhaps not even noted on this project, but the general idea of qr codes on paper was an attempt to solve the problem of long term data storage. Paper (especially archive quality) can potentially last longer than existing data storage methods (like hard drives or DVDs).

  10. I did something similar with PDF417 a long time ago. That idea was completely stolen from Ghost in the Shell standalone complex. It worked surprisingly well and I even stored some data on it beyond text.
    Yes I chose PDF417 because it looked the closest to what was in the show. So now I’m kind of curious which one would serve better for this purpose QR or PDF.(Or maybe something else, there are some interesting standards out there)

  11. Someone did this years ago, but not with QR codes. The thing was, and I think still is, that it did not hold that much more density than just printing out the document in text, if it was text to begin with, and that of course has the added benefit that you can use your brain if there are any drop outs. You may miss subtle nuances in the original like misspellings, but your brain is really good at reconstructing stuff. It would be interesting to see how you do vs the error checking in one of the paper backup systems. My guess is they will fall flat, but know they have fallen, while your brain can do at least some reconstruction. Of course that goes away with binary files.

  12. This is a notch more practical than the infamous VBS, made one of those circuits back in the day for my amiga 500. Was impressive at the time tho. Would backup at the speed of the floppy drive. (vIdeo backup system, was basically sending black and white pixels that looked like “structured noise” as bits of data, that you would save on vhs or beta tapes and recover using a dongle which was basically an opamp circuit). Fun times.

  13. In the mid-1990’s there was a commercial company offering this service. Back up your data encoded on special paper that was acid-free and had other stabilizing characteristics. Stored in special containers and literally shipped off to salt mines for long-term or permanent storage. (Salt mines can be very stable and some exhausted ones are used for lots of permanent records storage on paper, tape, and disk.)

    I can’t remember the company and I can’t find any references because all the search engines are overwhelmed with commercial, reddit, and “superuser”/”stack overflow” spam. :(

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.