SOURCE_URL: https://majikah.solutions/products/majik-message/docs/message-local-documentation --- title: "Offline Message Encryption" id: "message-local-documentation" group: "majik-message" type: "products" version: "1.1.0" lastUpdated: "2026-02-19T00:00:00.000Z" difficulty: "Beginner" time: "5-7 minutes" tags: [encryption, decryption, offline, local, privacy, security, post-quantum, ml-kem, mjkb] --- # Offline Message Encryption > Learn how to encrypt and decrypt messages locally without real-time chat using post-quantum encryption ## Overview Encrypt and decrypt messages offline with Majik Message's local encryption tool using post-quantum ML-KEM-768 (FIPS-203) combined with AES-256-GCM. Send encrypted messages anywhere—via email, text, or any platform—without needing real-time connectivity. Perfect for storing sensitive information or sharing secure messages across any communication channel. ### What is Offline Message Encryption? The Message tab provides powerful offline encryption and decryption capabilities using post-quantum ML-KEM-768 (FIPS-203) combined with AES-256-GCM. Unlike the Chats tab which requires real-time connectivity, this feature lets you encrypt messages that can be sent anywhere—email, SMS, social media, or stored as files. The encrypted message is serialized into a portable MJKB format and represented as a scanner string that can be safely shared through any platform. Only recipients you specify can decrypt the message, and no server ever sees your plaintext. > **NOTE:** Access offline encryption in the Message tab (fourth tab in the top navigation bar). ### Message (Local) vs. Chats: What's the Difference? Chats tab is for real-time messaging between online users. Messages are delivered instantly but auto-expire after 24 hours. Message tab is for offline encryption. You manually share encrypted messages through any platform (email, text, cloud storage). Messages don't expire and can be stored permanently. Both use the same post-quantum ML-KEM-768 + AES-256-GCM encryption and recipient system. ### Encrypted Message Format (MJKB & Scanner Strings) All encrypted messages are stored in Majikah's proprietary MJKB binary format, which is designed for consistent parsing across web, desktop (Electron), and Chrome Extension environments. When shared as text (e.g., via email or a messaging platform), encrypted messages are serialized into a scanner string with the prefix ~*$MJKMSG: followed by a base64-encoded binary envelope. The Majik Message Chrome Extension's DOM scanner automatically detects this prefix and decrypts matching messages inline on any webpage. > **NOTE:** Messages encrypted here are fully compatible with the Majik Message Google Chrome Extension. The extension automatically scans webpages for scanner strings (~*$MJKMSG: prefix) and decrypts them inline, allowing you to encrypt and decrypt across any platform. ### Account Required > ⚠️ **WARNING:** Before you can encrypt or decrypt messages, you must have at least one seed phrase account created or imported. If you don't have an account yet, visit the Accounts tab to create one. ### Encrypt a Message Locally 1. **Navigate to Message Tab** *Open the encryption interface* - Go to the Message tab in the top navigation bar - By default, it loads in Encrypt mode - You'll see two text boxes side by side 2. **Choose Recipients** *Who should be able to decrypt this message?* - To encrypt only for yourself (like a private journal), leave recipients empty or select only yourself - To share with others, click Add Recipient - Select contacts from your directory—only contacts in your directory can be added - You can add multiple recipients; each recipient gets their own ML-KEM-768 encrypted key slot, so all of them can decrypt the message independently 3. **Write Your Message** *Enter plain text on the left* - Type your message in the left text box (editable area) - As you type, the encrypted MJKB scanner string appears in the right text box automatically - The encrypted text is prefixed with ~*$MJKMSG: and looks like random characters—this is the post-quantum encrypted envelope 4. **Save or Share Encrypted Message** *Multiple export options available* - Copy to Clipboard: Click the copy button to paste anywhere - Save as TXT: Download as a plain text file containing the scanner string - Save as JSON: Download as a JSON file (preserves metadata) - Share Anywhere: Send via email, SMS, social media, cloud storage, or any platform—the encrypted string is safe to share publicly > **NOTE:** The encrypted message string is safe to share publicly. It uses ML-KEM-768 + AES-256-GCM encryption. Only recipients you specified can decrypt it, even if someone intercepts the message. ### How Group Encryption Works When you add multiple recipients, Majik Message generates a random 32-byte AES key, encrypts your message once with AES-256-GCM, then for each recipient uses ML-KEM-768 encapsulation to produce a shared secret. The group AES key is XOR'd with each recipient's unique shared secret, creating an individually encrypted key slot per recipient. This means adding more recipients does not allow them to see each other's key material—each recipient decrypts only their own slot to retrieve the AES key and read the message. ### When to Use Offline Encryption Use offline encryption when you want to: store sensitive notes securely (encrypt to yourself only), send confidential information via unsecured channels like email, preserve important messages from the auto-expiring chat, share encrypted data across different platforms or devices, or maintain a secure backup of conversations. ### Decrypt a Message Locally 1. **Switch to Decrypt Mode** *Change the interface mode* - Go to the Message tab - Click the Mode button to switch from Encrypt to Decrypt mode - The interface will adjust to show decryption options 2. **Import Encrypted Message** *Multiple import methods available* - Paste Directly: Copy the encrypted scanner string (starting with ~*$MJKMSG:) and paste it into the left text box - Import TXT File: Click the import button and select a .txt file containing the encrypted message - Import JSON File: Select a .json file exported from Majik Message 3. **View Decrypted Message** *Only visible if you're a recipient* - If you're the sender or a designated recipient, the decrypted message appears in the right text box - If you're not a recipient, you'll see an error message: 'You do not have permission to decrypt this message' - The decryption happens instantly and locally on your device—no data is sent to any server ### Decryption Permissions > ⚠️ **WARNING:** You can only decrypt messages if: (1) You encrypted the message yourself, or (2) You were added as a recipient when the message was encrypted. Having the encrypted text is not enough—you must be explicitly authorized as a recipient with your own ML-KEM-768 key slot in the envelope. ### Saving Messages from Real-Time Chat Since real-time chat messages auto-expire after 24 hours, you can preserve important conversations using the Message tab. In the Chats tab, hover over any message bubble to reveal action buttons. Click the copy icon to copy the encrypted text to your clipboard, or click the download icon to save it as a TXT file. Then switch to the Message tab in Decrypt mode to view or store the message permanently. ### Save Chat Messages for Later 1. **Export from Chat** *In the Chats tab (real-time messaging)* - Find the message you want to preserve - Hover over the message bubble to reveal action buttons - Copy: Click the copy icon to copy encrypted text to clipboard - Download: Click the download icon to save as a .txt file 2. **Import to Message Tab** *Decrypt and store permanently* - Go to the Message tab and switch to Decrypt mode - Paste the copied text or import the .txt file - View the decrypted message and save it locally on your device - Store in your personal archive, notes app, or encrypted backup > **NOTE:** All encryption and decryption happens locally on your device. Your messages and private keys never leave your computer, ensuring maximum privacy and security. ### Cross-Platform Compatibility Encrypted messages work seamlessly across all Majik Message platforms. Encrypt on the desktop app and decrypt on the Chrome extension, or vice versa. The MJKB format and scanner string standard are universal across web, desktop (Electron), and the Chrome Extension. As long as you have your seed phrase account on any device, you can decrypt messages intended for you. This makes Majik Message perfect for multi-device workflows. ### Quick Reference: Message Actions | Action | Location | Mode | Requirement | | --- | --- | --- | --- | | Encrypt Message | Message Tab | Encrypt Mode (default) | At least 1 account | | Add Recipients | Message Tab | Encrypt Mode | Contacts in directory | | Copy Encrypted Text | Message Tab | Encrypt Mode | Copy button | | Save as TXT | Message Tab | Encrypt Mode | Download button | | Save as JSON | Message Tab | Encrypt Mode | Download button | | Decrypt Message | Message Tab | Decrypt Mode | Be a recipient | | Paste Encrypted Text | Message Tab | Decrypt Mode | Valid ~*$MJKMSG: scanner string | | Import TXT/JSON | Message Tab | Decrypt Mode | Import button | | Save Chat Message | Chats Tab | N/A | Hover over message bubble | *Caption: Common offline encryption tasks and options* ### Export Formats Explained TXT Format: Plain text file containing the MJKB scanner string (~*$MJKMSG: prefix + base64 envelope). Simple and universal—works with any text editor, messaging platform, or the Chrome Extension's DOM scanner. JSON Format: Structured file that includes the encrypted envelope plus metadata (timestamp, recipients, etc.). Best for organizing and archiving multiple messages. Both formats use ML-KEM-768 + AES-256-GCM encryption and are equally secure. > **NOTE:** Recipients must be in your contact directory before you can add them to a message. If you need to add someone new, go to the Contacts tab first to add them to your directory using their invite key. ### Why Use Offline Encryption? Offline encryption gives you complete control over your data. Unlike real-time chat platforms that store messages on servers, encrypted messages exist only as portable scanner strings. You decide where to store them—on your device, in the cloud, or anywhere else. No server can read your messages, no company can access your data, and no one can decrypt without being an explicitly authorized recipient. The ML-KEM-768 post-quantum encryption ensures your messages remain secure even against future quantum computers. It's true end-to-end, post-quantum encryption that puts you in full control.