Securely split and combine secrets with QR codes
QR SafeShare is a free tool that lets you split a password, recovery phrase, or any text into multiple QR codes. The project is fully transparent: all code is published on GitHub for anyone to review. It uses mathematical techniques (XOR and Shamir’s Secret Sharing) to ensure that a single share is useless on its own. Only by combining the required shares can the original secret be reconstructed. Everything runs locally in your browser. Nothing is ever sent or stored online.
Here are some practical scenarios where QR SafeShare makes sense:
Recovery phrases are extremely sensitive. A CryptoSteel is durable, but if a burglar finds it, they have your entire phrase. Digital backups can be corrupted or hacked. Splitting a metal backup in two also isn’t secure, since each half exposes part of your phrase and you no longer know the whole thing yourself.
With QR SafeShare you can use Shamir’s Secret Sharing (3-2) to create three QR codes where any two are enough to recover your phrase. Export them as 3MF files to 3D-print durable offline backups. Store one in a safe, one digitally, and one with a trusted person. Even if one code is lost or stolen, your funds remain secure. A single QR is useless on its own, even against future quantum computers.
Sending a password over a single channel like email is risky. If intercepted, the secret is exposed. With XOR 2-2 splitting you divide the password into two QR codes. Each part on its own is useless.
You can send one part via WhatsApp or SMS as a special link that opens the Combine page with the first QR preloaded. The second QR is sent as an image by email. When your client opens the link and scans the second QR, the password is reconstructed locally in their browser. If one channel is compromised, nothing is revealed.
A dead man’s switch is a system that checks if you are still alive or active. It sends you periodic messages, and if you stop responding it automatically triggers an action, such as sending an email.
If you simply email a password, it may sit unprotected in someone’s inbox and be intercepted — creating a single point of failure.
With XOR 2-2, you split the master password of a password vault into two parts:
Only by combining the USB QR with the emailed link locally in the browser can the vault password be reconstructed. A hacker who only has the email, or a burglar who only steals the USB from the safe, gains nothing.
You enter your secret (for example a password or recovery phrase). The tool uses mathematical calculations to create multiple shares. Each share is shown as a QR code and can be stored or shared separately.
Combining only works through the official Combine page. You cannot recover your secret with a generic QR scanner. Only by scanning or uploading the required QR fragments on the Combine page will the original secret be reconstructed.
With QR SafeShare you can not only store your secret QR codes digitally, but also export them as a 3MF file. This format is directly supported by most 3D printers and lets you create a durable, physical backup of your secret.
Why is this useful? Paper can tear, fade, or burn. Digital storage can be hacked, corrupted, or lost. A 3D-printed QR is durable, tangible, and completely offline — a secure backup you can actually hold in your hands.
Want to prevent someone from scanning your printed QR code without permission? Use the QR SafeShare Sleeve. Slide the QR code inside and secure it with a padlock. With the lock in place, the QR cannot be removed or scanned.
QR SafeShare can also be installed as a Progressive Web App (PWA) for quick access, just like a native app. Once installed, it runs fullscreen and can be used completely offline.
QR SafeShare supports two mathematical methods:
Both methods are mathematically secure as long as you follow the rules. Everything runs client-side in your browser with JavaScript.
With Shamir’s method, the secret is embedded in a polynomial. You can configure how many QR codes (shares) are required to reconstruct the secret. This allows flexible schemes such as 2-out-of-3, where you can lose one QR but still recover your backup.
On Linux you can use the qrencode
tool to generate QR codes directly from a text file.
This allows you to keep your QR code data safely on your own system, without ever relying on an external website or service.
mytext.txt
).qrencode -t ANSIUTF8 < mytext.txt > qr_payload.txt
cat qr_payload.txt
This method keeps the entire process on your Linux server, giving you full control over your backups while ensuring that nothing ever leaves your secure environment.
If you prefer not to use a QR code, you can also create a small HTML file that redirects to the Combine page with the payload already embedded in the URL.
This file can be uploaded to your own webhosting. Anyone who visits the page will be redirected straight into combine.html
with the data preloaded.
Below is a complete example of such a file (share.html
). You can copy, paste, and save it. Replace the JSON inside the payload
variable with your own share.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex,nofollow">
<title>Redirecting…</title>
<script>
const payload = encodeURIComponent('{"t":"s","c":"crypto","n":3,"k":2,"i":2,"id":"d8a851ae","d":"802f"}');
window.location.replace("https://qrsafeshare.com/combine.html#" + payload);
</script>
</head>
<body>
<p>Redirecting to QR SafeShare…</p>
</body>
</html>
Place this file on your hosting and (optionally) link to it or write its URL onto an NFC tag. When someone opens the URL, their browser will load this file, which instantly forwards them to the Combine page with the embedded payload.
Security tip: it may be wise to protect this file or directory with a password (HTTP Basic Auth or similar), or use a time-limited/signed URL. This prevents anyone who finds the URL from immediately accessing the embedded payload.
No. Each QR code on its own is useless. The secret can only be reconstructed when the required number of QR codes is combined. Even with a supercomputer or a future quantum computer, a single part reveals nothing.
If you use Shamir’s Secret Sharing, you can create multiple codes (for example 3) but only need a subset (for example 2) to recover the secret. This gives you flexibility and resilience against loss. With XOR 2-2, losing one part means the secret is unrecoverable, so store both parts carefully.
Yes. QR SafeShare is completely free to use. All processing happens locally in your browser, with no tracking or data collection. All code is published on GitHub, transparent and reviewable. All processing happens locally in your browser, with no tracking or data collection. If you find it useful, you can support the project through donate.qrsafeshare.com, where you’ll find several donation options.
Paper can burn, fade, or deteriorate over time. A 3D-printed QR code is durable, physical, and offline. It offers a long-term backup option for sensitive information.
Yes, you can. But digital storage (cloud, email, devices) is more vulnerable to hacks or accidental deletion. The advantage of splitting is that a single file is meaningless without the others.
Yes. QR SafeShare is designed with recovery phrases in mind. You can split your seed phrase into multiple parts and keep them in different locations, ensuring safety even if one part is lost or stolen.
No. QR SafeShare only works with text (passwords, recovery phrases, notes). If you try to split a file, the QR codes would become extremely large and unreadable, which makes this approach impractical.
🚀 Enjoying QR SafeShare?
Your support helps add new features and keep it free for everyone.
Thank you for your support 🙏