Why This Project Exists
What happens to your digital accounts, documents, and other important information if something happens to you? My Last Key was created to solve this problem. It's not a password manager. It's a simple tool to create a single, secure document for your loved ones—a "digital last will" that gives them access and guidance when they need it most.
Security First
Nothing Leaves Your Browser
All processing of your data—from input to encryption—happens exclusively on your own computer. No passwords, notes, or sensitive information are ever sent to our servers. We store nothing because we never receive it. Your security is at the core of the tool's design.
Full Transparency
100% Open Source
Trust is essential. That's why the entire source code for MyLastKey is publicly available on GitHub. Anyone, from curious users to security experts, can freely review our code to verify that we live up to our promises. No backdoors, no secrets.
Practical Application
Your Digital Emergency Plan
What happens if you lose access to your online password manager? MyLastKey provides you with a physical, secure, and readable backup of your most critical information. Print it, store it in a safe place, and use the built-in QR codes for quick access when you need it. It's your offline lifeline.
How It Works: Two Simple Steps
Step 1: Create Your Document
Use the "Create Your Plan" tool to list all your important information: account logins, locations of physical documents, instructions for your partner, etc. You can add, edit, and categorize everything you need.
Step 2: Secure & Share
Optionally, you can encrypt this entire document with a single, strong Master Key. The tool then lets you export the encrypted text or a QR code. You can save this file on a USB drive or print the QR code and store it in a safe place, along with the Master Key (shared separately).
Your Offline Decryption Kit
Your data is never locked in. To guarantee you or your family can always access your information, even if this website is offline, download the self-contained decryption tool. It's a single HTML file that works forever, on any computer with a web browser.
Download the Decryption Tool
Save this file to a USB drive along with your encrypted data file for complete peace of mind.
Download mylastkey-decrypt.html
Advanced: Manual Decryption Guide
For technical users, you can also decrypt your data using standard command-line tools, proving that your information is not dependent on this specific tool. Here's how:
Decrypting on Windows
1. Save your encrypted text (the `salt:iv:data` string) into a file named `encrypted.txt`.
2. Open PowerShell and navigate to the directory where you saved the file.
3. Run the following commands, replacing `"YOUR_MASTER_KEY_HERE"` with your actual key.
# 1. Read the encrypted file and split it into parts $encryptedParts = (Get-Content -Path "encrypted.txt" -Raw).Split(':') $saltHex = $encryptedParts[0] $ivHex = $encryptedParts[1] $encryptedDataB64 = [System.Convert]::ToBase64String([System.Convert]::FromHexString($encryptedParts[2])) # 2. Get the Master Key from the user $password = Read-Host "Enter your Master Key" # 3. Derive the encryption key using PBKDF2 $rfc2898 = New-Object System.Security.Cryptography.Rfc2898DeriveBytes($password, [System.Convert]::FromHexString($saltHex), 250000, "HMACSHA256") $key = $rfc2898.GetBytes(32) # 32 bytes for AES-256 # 4. Decrypt the data $aes = New-Object System.Security.Cryptography.AesManaged $aes.Mode = "CBC" $aes.Padding = "PKCS7" $aes.Key = $key $aes.IV = [System.Convert]::FromHexString($ivHex) $decryptor = $aes.CreateDecryptor() $encryptedBytes = [System.Convert]::FromBase64String($encryptedDataB64) $decryptedBytes = $decryptor.TransformFinalBlock($encryptedBytes, 0, $encryptedBytes.Length) $aes.Dispose() # 5. Display the result [System.Text.Encoding]::UTF8.GetString($decryptedBytes)
Decrypting on macOS / Linux
1. Save your encrypted text (the `salt:iv:data` string) into a file named `encrypted.txt`.
2. Open your terminal and navigate to the directory where you saved the file.
3. Run the following shell command. It will prompt you for your Master Key.
#!/bin/bash # Read the encrypted string from file ENCRYPTED_STRING=$(cat encrypted.txt) # Split the string into salt, iv, and data IFS=':' read -r SALT_HEX IV_HEX DATA_HEX <<< "$ENCRYPTED_STRING" # Ask for the master key securely echo -n "Enter your Master Key: " read -s MASTER_KEY echo # Derive the key using OpenSSL's PBKDF2 implementation # Note: -pbkdf2 and -iter are standard in modern OpenSSL KEY_HEX=$(echo -n "$MASTER_KEY" | openssl kdf -kdf_alg PBKDF2 -iter 250000 -keylen 32 -prf hmacWithSHA256 -salt "$SALT_HEX" PBKDF2) # Decrypt the data using AES-256-CBC # The encrypted data needs to be in binary format, so we use xxd to convert from hex echo "$DATA_HEX" | xxd -r -p | openssl enc -d -aes-256-cbc -K "$KEY_HEX" -iv "$IV_HEX" -padding pkcs7
About the Creator
"This started as a personal project to ensure my own family would be looked after. I wanted a solution that was simple, trustworthy, and not reliant on a company that could disappear tomorrow. I'm sharing it in the hope it can help others too." - Rasmus