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!
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?
Was that the Cauzin Softstrip? I remember what you’re describing, and I seem to recall it having a name like “softstrip”. The dates line up.
https://wikipedia.org/wiki/Cauzin_Softstrip
I remember something like this, but it was a joke project, not a commercial product. A functional joke project. I don’t remember all the details, it was some two decades ago, it could be this:
http://ollydbg.de/Paperbak/
I backed up my Litecoin wallet with this app and managed to recover it years later.
Now THAT is pretty cool. Well done!
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.
I remember radio shack and their quecat
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.
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..
I still own my HP-41CX calculator and the bar code scanner that works with it!!
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.
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.
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
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.
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.
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.
I wonder how much data could be packed into one page printed on a typical laser printer with a 2D barcode that’s optimized for storing larger amounts of data than a QR code.
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
A single standard issue qr code can hold 3KB per code and now we are expected to be excided by 3KB per printed page? Really?
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.
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.
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.
@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.
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.
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/
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 ;)
My first account where I set up rolling-code 2FA, Google, literally gave me a printout of single-time-use recovery codes and told me to keep it safe and cross off any codes I had used.
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’?”
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.
Arrange a bunch of solenoids that imprint dots on clay, arranged in some sort of matrix…
Reinventing a Dot Peen Marking Machine?
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.
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.
“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.
“…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?
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.
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).
So humans can’t even remember 3KB data?
I was planning to script translating texts to one QR code per letter, but after having shown that with only a time (HH:MM) to some digital neighbours, they made clear that I’d get locked away for doing that with complete texts.
Mwhuaahahahahaahahahahahaaaaaaaa…
Back on topic: http://ronja.twibright.com/optar/
github “Arctic Code Vault” was created by PIQL who wrote 21TB of repository data to 186 reels of piqlFilm (digital photosensitive archival film). Which should be good for 1,000+years.
https://github.com/piql/piql-read
I wonder how much could be put on paper using a similar method to the one used by piql.
You can try it yourself, Piql use the Boxing encoding method, which they have made open source: https://github.com/piql/boxing . Their implementation for film is about 67MB per barcode (4096 x 2160 x 8bpp) but you could vary that to better fit an A4 sheet.
I’ve been trying to do something similar with this project:
https://github.com/KyleMaas/realworldarchive
Main goals are both data resiliency and density. So far it works really well with monochrome, but the color demultiplexing has been a tough problem to solve.
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)
Just keep away the silverfish!
useful for encryption keys
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.
I have seen data transfer between phones displaying colored bitmap images, would it be possible to encode more data using colors?
The idea is quite old. It has already been implemented almost 17 years ago by Oleh Yuschuk the creator of ollydbg. See ollydbg.de/Paperbak/ for details.
What is a backup?
It is the opposite of a frontdown.
It is somewhat unlike a sideover.
Lower backups are usually associated with quite a bit of pain as they age.
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.
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. :(
You can modify your search query with a minus sign and exclude unwanted keywords. That might help.
You can also specify date range for your result. That might help. I hope you find it.
Oh, I’ve been at this long enough (since 8-bits) that I know all the search engine tricks. The deluge of shit is too overwhelming for those tricks to work anymore… I even tried alternative search engines like Marginalia and instances of Searx. No joy. No hope.