frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Show HN: Qrkey – Offline private key backup on paper

https://github.com/Techwolf12/qrkey
64•techwolf12•16h ago

Comments

qualeed•15h ago
What is the benefit of using a QR code over just printing and storing the document itself in a human-readable format?

I'm trying to think of when/why I would want to add the extra step of converting to/from QR codes for the documents I keep in my safe, but I'm not coming up with any reasonable use case.

I'm sure I could just be missing the use case(s) the author has in mind, perhaps they should be suggested in the readme.

Edit: Several good examples below, thanks.

techwolf12•15h ago
Personally, I use it for GPG private keys, and importing it again is easier with a barcode scanner than typing the entire file I've printed by hand.
kennyadam•15h ago
Error correction?
gukov•12h ago
Yep, if I'm using a physical medium like paper I want to allow for some degradation. Here's a Veritasium video on QR codes: https://youtu.be/w5ebcowAJD8
s0ss•15h ago
Machine-readable expedited/convenient recovery as opposed to manual transcription.

Data entry sucks.

vorgol•14h ago
> Data entry sucks

These are the kindest words I've heard about data entry.

jeroenhd•15h ago
The ability to store binary files comes to mind. PKCS12 certificate files and can't be turned human-readable without risking losing a flag or metadata or whatnot but the format is still widely used.

You could also use this as a basis for a printer+scanner system that exports and imports your system key store(s) automatically without having to risk OCR breaking your import.

Scanning a QR code is also just useful when it comes to entering long random strings. Although I agree that such a tool would do better outputting in plain text as well in case you need to enter it without a phone on hand, I think adding a QR code for loading the files quicker still makes sense.

musicnarcoman•15h ago
As someone who made the mistake of printing keys only in human-readable format: ocr software is only so accurate.

So if you have more than a handfull of bytes you may have to actually read it "by hand" to fix errors.

These days I keep the really important keys both as a qr codes and also hex. But the hex is not pleasant to work with.

dspillett•15h ago
> What is the benefit of using a QR code over just printing and storing the document itself in a human-readable format?

Easier reading back. You don't want to be typing your private key in, and while scanning + OCR might be pretty reliable unless you are daft about font and text size choices getting text direct from the QR code on your phone (or direct into a PC/laptop if you have a scanner that perhaps types the content by pretending to be a USB keyboard), feels to me like it would be more convenient.

You can store a 2048-bit RSA private key in standard text form in a QR code, so after scanning to clipboard all you have to do is paste the text into an appropriate file, or again using the scan->HID option that is slightly more direct.

For longer keys you will need multiple QR codes, of course, and a very slightly more convoluted method. I have a couple of keys, SSH private keys and the master key for a keepass store (which is also on a USB token I carry), printed as QR codes stored in a secure place in this manner.

It looks like this tool does not allow for direct input from scanning the QR code(s) in the manner I've just described, as the description says it includes metadata for reassembly of larger data removing the simplest case for small data in favour of making larger data more convenient/robust.

cornstalks•15h ago
I keep meaning to do something like this in combination with Shamir’s secret sharing (which allows you to split a secret into M blocks, of which any N can be combined to recover the key, and M and N are configurable) to distribute a private key among family members in case of my untimely demise so they can more easily access my financial accounts and stuff. Has anyone done that before, and if so, what tools do you prefer? My family members are nontechnical so that’s the biggest challenge.
mook•15h ago
I've seen https://github.com/cyphar/paperback before which basically does this, I believe. I haven't used it in the context of letting other people recover things though.
vorgol•14h ago
Visual cryptography is really cool. Shamir and Naor came up with an algorithm in the 90s: https://en.wikipedia.org/wiki/Visual_cryptography#Example

Basically hand out transparencies to n people, and they all have to overlap to see the picture. It's like magic when you're playing with them.

EthanHeilman•11h ago
Codex32 allows you perform Shamir secret sharing operations and error correcting code without using a computer. Instead, you can perform the operations by hand using cardboard code wheels called volvelles.

It is a really fun idea and does not require deep technical knowledge to operate. The intent is for Bitcoin secret keys, but it can be used for any secrets.

https://secretcodex32.com/

unboxingelf•43m ago
superbacked, now free and open source, does exactly this.

https://superbacked.com/

saclark11•15h ago
Something similar, but encrypted, is PaperAge [1]. Admittedly, I haven't used it, but it seems like a nice solution for secure physical backup of small secrets. The catch, of course, is now you need to make sure you never forget your passphrase or back that up off-site somewhere else.

[1]: https://github.com/matiaskorhonen/paper-age

henry700•15h ago
The paper security backup "d'oh" equivalent to this would naturally be storing the encrypted PaperAge QR codes in the same physical location as the unencrypted QRkey paper containing the decryption key. Which would be hilarious to witness.
filleokus•14h ago
Something similar again is my little tool hemlis [0]

It uses Shamir's secret sharing algorithm to generate shares where the private key is split in n shares with k needed to reconstruct it. The bytes are encoded as word on a PDF (either 'burnt in' or written manually with pen to minimise the risk of storing them on printers etc).

That way you can spread the risk of loosing the physical key, while still maintaining some assurance that e.g your friends can run away with the key (or be compelled to hand it over to some threat actor).

[0]: https://github.com/filleokus/hemlis

tantalor•15h ago
> Recover from a PDF with QR codes with a barcode scanner

Barcode scanners scan bar codes, not QR codes.

detaro•15h ago
QR codes are commonly considered a type of barcode. cf wikipedia: "A QR code, quick-response code, is a type of two-dimensional matrix barcode"
thequux•13h ago
Many barcode scanners these days can scan QR codes. I have a NetumScan NSL5 that I got for €30 or so that can handle QR, DataMatrix, and even Aztec codes.
slig•15h ago
How safe is printing a private key, considering potential vulnerabilities in the printer software, firmware, and its online connectivity?
GTP•13h ago
You're posing a good question but, if you look at things from this perspective, then every time you type the password to decrypt your private key you should worry about the possibility of some software running on your machine reading it and sending it somewhere.

While you pose a valid concern, I think most people don't have to worry about this. The reason is that printing private keys isn't a common practice, so I think it's unlikely that nation-states mandate backdoors in printer firmware to collect private keys, and most people don't have to worry about targeted attacks.

EDIT: On a second thought, your comment reminded me of that creepy time many years ago when a printer randomly regurgitated a partial print of a document I printed some time before (read: days or even weeks before), clearly showing that the printer kept it somewhere in memory. So it still possible that some printers memorize what you print. IIRC it was a Brother printer. At the end of the day, you can't account for every possible attack vector. Pick a reasonable threat model and act accordingly.

wrs•12h ago
This certainly applies to office printers. Printers that accept new jobs while printing have to store them somewhere. There have been many incidents of finding old documents on disposed printers because it doesn’t occur to anyone to wipe them first. This especially applies to “copiers”, because a copier is just a printer in the same box as a scanner.
0cf8612b2e1e•11h ago
There was a conspiracy theory that China was buying old office printers/scanners hoping to recover secret documents remaining in the cache. Plausible, but seems like a lot of effort hoping for a diamond in the rough when I expect 99% of prints are boring day-to-day information.
GTP•8h ago
But that wasn't an office printer. Yes, printers do have some memory to store what they need to print, but surely I didn't expect a document to linger there for weeks. Anyway, you're right: we may have to look at printers differently.
vorgol•14h ago
There was also a good thread about paper storage the other day: https://news.ycombinator.com/item?id=44142565
hypeatei•14h ago
Tangential, but why is there a docker image for a simple command line tool like this? Surely a git clone is enough, especially for a Go app, no?
peckemys•14h ago
Some people prefer to manage (or simply test) CLI tools, as simple or complicated they are, with Docker. You can setup an alias like 'alias qrkey=docker run --rm ghcr.io/techwolf12/qrkey:0.0.1' and run it as it was normally installed. In this example, as the image is created from scratch, the size would only be marginally bigger than the executable.
_whiteCaps_•14h ago
I set up a similar system:

http://github.com/alexjh/gpg-backup/

I printed to photo paper at the exact resolution my HP Photo printer needed, so the quality is excellent.

kardianos•14h ago
Nice, I'll add to the list of similar thing I made, specifically for keepass.

You tag entries in your keepass DB with "safe-print", then point the tool to the db file, unlock it, then it generates a printout to put in your safe.

https://github.com/kardianos/safekeysheet

krunck•11h ago
Be careful where you print these. Most full-featured printer/copier/scanner devices found in office environments can store print job data on the HD where service technicians can access it.
techwolf12•11h ago
I'll use my own printer, and after it dies on me, I will give it the Office Space treatment ;)
yencabulator•8h ago
For extra fun, the printer is likely either on the network or has bluetooth. Age-old poorly written embedded computer with network services written in C is the industry standard. It's totally plausible to break in and steal previously-printed data.
lozf•5h ago
There's always paper-age[0] for those who want to add symmetric encryption (via age) to their qr-encoded secrets! ;)

[0]: https://github.com/matiaskorhonen/paper-age

Edit: I now see it was already mentioned.

thayne•10h ago
This is a neat idea, but unfortunately not very useful to me. I don't own a printer, and I don't want to trust my private keys to a public computer and printer.
RamRodification•9h ago
The usage guide shows which command to run to generate a QR code from a file, and outputs a PDF. But then the command for recovering a file from QR codes takes "file.txt" as input. Is that a typo? Shouldn't that input also be a PDF?
lipowitz•8h ago
It isn't the PDF you started with once you print it.. A QR code scanner in a camera app, etc, will return text such as a URI.

Great Blue Norther of November 11, 1911

https://en.wikipedia.org/wiki/Great_Blue_Norther_of_November_11,_1911
1•gametorch•3m ago•0 comments

Chatty I/O antipattern (2022)

https://learn.microsoft.com/en-us/azure/architecture/antipatterns/chatty-io/
2•motorest•5m ago•0 comments

ScienceDirect AI

https://www.elsevier.com/products/sciencedirect/sciencedirect-ai
1•jruohonen•12m ago•1 comments

Farewell Economy 7, a Casualty of the Long Wave Switch-Off

https://hackaday.com/2025/04/10/farewell-economy-7-a-casualty-of-the-long-wave-switch-off/
2•austinallegro•14m ago•0 comments

Builder.ai did not "fake AI with 700 engineers"

https://blog.pragmaticengineer.com/builder-ai-did-not-fake-ai/
2•todsacerdoti•15m ago•0 comments

Synthesis of hafnium carbide via one-step selective laser reaction pyrolysis

https://ceramics.onlinelibrary.wiley.com/doi/10.1111/jace.20650
1•PaulHoule•15m ago•0 comments

Lisp Machine

https://en.wikipedia.org/wiki/Lisp_machine
2•doener•17m ago•1 comments

How to Write the Worst Possible Python Code (Humor)

https://effective-programmer.com/how-to-write-the-worst-possible-python-code-8c6e49816e90?sk=d06d4241ce97a51a969fbce67070f8ba
1•naveed125•18m ago•0 comments

The most reliable AI agent that works – where Claude, Gemini, and o3 fail

https://substack.recursal.ai/p/the-worlds-most-reliable-ai-agent
1•djshah•19m ago•0 comments

AI agent startups at Y Combinator's Demo Day for its first-ever spring cohort

https://www.businessinsider.com/y-combinator-yc-demo-day-spring-ai-agent-startups-2025-6
1•aspenmayer•20m ago•1 comments

Roll: Reinforcement Learning Optimization for Large-Scale Learning

https://github.com/alibaba/ROLL
1•robertnishihara•20m ago•0 comments

The Talented Ms. Highsmith

https://yalereview.org/article/working-for-patricia-highsmith
2•Caiero•22m ago•0 comments

How Are Students Using Generative AI in UK Universities?

https://markcarrigan.net/2025/05/30/how-are-students-using-generative-ai-in-uk-universities/
1•jruohonen•22m ago•1 comments

Cure Dolly's Japanese Grammar Lessons

https://kellenok.github.io/cure-script/
2•agnishom•23m ago•0 comments

Show HN: I'm a student built an AI to chat with YouTube videos

https://www.wiyomi.com/explore
2•adrinant•23m ago•0 comments

China Moves Forward on Next-Generation 400 Km/H High-Speed Rail

https://www.newsweek.com/china-high-speed-rail-next-generation-2085191
2•decimalenough•25m ago•0 comments

The z80 technique reveals the source code for Atlassian's 'rovo' AI assistant

https://ghuntley.com/atlassian-rovo-source-code/
1•ghuntley•25m ago•0 comments

Embedding Benchmark for Retrieval

https://huggingface.co/spaces/embedding-benchmark/RTEB
1•fzliu•31m ago•0 comments

New video model Seedance Beat Veo3 is now available for free. Try it now

https://seedance.co
1•gravitywp•33m ago•0 comments

Is Google about to destroy the web?

https://www.bbc.com/future/article/20250611-ai-mode-is-google-about-to-change-the-internet-forever
1•paulpauper•35m ago•0 comments

The End of Lead

https://worksinprogress.co/issue/the-end-of-lead/
2•paulpauper•36m ago•0 comments

What Leaders Need to Understand About AI with Nobel Laureate Geoffrey Hinton [video]

https://www.youtube.com/watch?v=32f9MgnLSn4
1•lawrenceyan•42m ago•0 comments

Clothes Swap and Virtual Try-On

https://aiactionfigure.cc
1•mrguo•46m ago•0 comments

Caltrain official lived in secret apartment built illegally inside train station

https://sfstandard.com/2025/06/12/caltrain-employee-secret-apartment-burlingame-station-photos/
9•panic•47m ago•1 comments

LibreOffice drops support for Windows 7, 8 and 8.1

https://www.neowin.net/news/libreoffice-narrows-gap-with-microsoft-office-in-258-beta-1/
2•bundie•48m ago•0 comments

APL Style: Patterns/Anti-Patterns (2017)

https://sway.cloud.microsoft/b1pRwmzuGjqB30On
1•todsacerdoti•1h ago•0 comments

SQLite Date and Time Functions

https://www2.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions
1•1vuio0pswjnm7•1h ago•0 comments

In San Francisco, Waymo Has Now Bested Lyft. Uber Is Next

https://underscoresf.com/in-san-francisco-waymo-has-now-bested-lyft-uber-is-next/
2•jerlam•1h ago•0 comments

Why I Joined Doge

https://podcasts.apple.com/us/podcast/why-i-joined-doge/id290783428?i=1000712821405
2•rgbrgb•1h ago•0 comments

CRMArena-Pro: LLM Agents Assessed Across Diverse Business Scenarios

https://arxiv.org/abs/2505.18878
1•felineflock•1h ago•0 comments