Skip to main content

Product

How Inkrypt Works

This is the full journey of a note: what your browser does, what crosses the network, what our servers store, and what the recipient's browser does to turn it back into readable text. No step is hand-waved.

Last reviewed Reviewed by Inkrypt Security Team

The short version

You write a note and set a password. Your browser turns the password into an encryption key and scrambles the text. Only the scrambled version is uploaded. To read it, someone loads the note and enters the password, and their browser reverses the process. Our servers hold ciphertext at every point in between.

Everything below is that same sequence with the details filled in.

Creating a note

  1. You choose a name

    The name becomes the note's URL — Project handover becomes /project-handover. Nothing is stored yet. Note names are not encrypted and appear in URLs, browser history and logs, so keep them non-descriptive.
  2. You write the note

    Text stays in your browser's memory. Nothing has been transmitted at this point.
  3. You set a password

    This is the only input to the encryption key. It is never transmitted, never logged, and never stored in any form — including as a hash.
  4. Your browser generates randomness

    A 16-byte salt and a 12-byte initialisation vector are drawn from the browser's cryptographically secure random number generator. Both are new every single time you save.
  5. Your browser derives a key

    PBKDF2-HMAC-SHA256 runs 310,000 iterations over your password and the salt, producing a 256-bit AES key. This is the brief pause you notice when saving — it is deliberate, and it costs any attacker the same on every guess.
  6. Your browser encrypts

    AES-256-GCM encrypts the text with that key and IV, producing ciphertext plus a 128-bit authentication tag that will later detect any tampering.
  7. The ciphertext is uploaded

    The encrypted blob, the salt, the IV and a label recording the key-derivation parameters travel to our servers over TLS. Your password and your text do not.

You can verify this yourself

Open your browser's developer tools, switch to the Network tab, and save a note. Inspect the outgoing request body: you should see a base64 blob, not your text. This is the most direct check available, and it works on any service making this claim.

What each party can see

Visibility at each stage of a note's life.
PartyCan seeCannot see
Your browserEverything — plaintext, password, key
The networkThat a request happened, to which hostNote contents (TLS, and encrypted beneath it)
Our serversCiphertext, salt, IV, slug, timestamps, view countPlaintext, password, encryption key
Someone with the link onlyThat a note exists at that addressThe note's contents
Someone with link and passwordEverything
Visibility at each stage of a note's life.

Sharing a note

Sharing issues a token — a long random identifier — and serves the note at /share/<token>. The token is an address, not a key: it retrieves ciphertext, and the password is still required to read it.

You can attach an expiry and a maximum view count to a share. When either limit is reached, the stored record is deleted and the link stops resolving.

The one rule that matters

Send the link and the password through different channels. Both in the same email or chat message means anyone who reads that message has the note, and every other protection becomes irrelevant.

Opening a note

  1. The recipient loads the URL

    Their browser requests the encrypted payload. If a view limit is set, this fetch is what increments the counter — regardless of whether decryption later succeeds.
  2. They enter the password

    It stays in their browser, exactly as yours did.
  3. Their browser re-derives the key

    The same PBKDF2 parameters, using the salt stored with the note, reproduce the identical 256-bit key. This is why the salt must be stored and why it does not need to be secret.
  4. Their browser verifies and decrypts

    AES-GCM checks the authentication tag first. If the ciphertext has been altered in any way, decryption fails rather than returning corrupted text. Otherwise the plaintext appears.
  5. The note reaches its end state

    It remains available until expiry, the view limit, or manual deletion — whichever comes first.

A wrong password and a tampered note produce the same visible result: decryption simply fails. There is no state in which someone reads a note that is subtly not what you wrote.

Editing and deleting

  • Editing requires the correct password. Saving re-encrypts the note with a fresh salt and a fresh IV, so no two saves ever reuse the same key-and-IV pair — the one failure mode GCM cannot tolerate.
  • Changing the password re-derives a new key and re-encrypts. The old ciphertext is replaced.
  • Deleting removes the stored record immediately. Because we only ever held ciphertext, there was never a readable copy to remove.
  • Expiry does the same thing automatically when the time or view limit is reached.

What this cannot do

Worth restating at the end of a walkthrough, because a clean sequence of steps can make a system feel more absolute than it is.

  • It cannot recover a note whose password you have forgotten. There is no key on our side to recover it with.
  • It cannot stop a recipient copying, screenshotting or remembering what they read.
  • It cannot protect you if your own device is compromised — plaintext exists before encryption runs.
  • It cannot make a weak password strong. Key derivation buys time proportional to how hard the password is to guess.

The full picture, including the adversaries this design does not address, is on the threat model page.

Frequently asked questions

Do I need an account to create a note?

No. There is no signup, no email address and no profile. Name a note, write it, set a password — that is the entire flow.

Where is my note actually stored?

On our servers, as ciphertext, alongside the salt and IV needed to reproduce decryption in your browser. No plaintext copy exists anywhere outside the browser sessions of people who know the password.

What happens if two people open the same note at once?

Both can read it. If a view limit is set, each fetch counts separately, so simultaneous access can consume the limit faster than you expect.

Can I use Inkrypt offline?

No. Creating or opening a note requires a connection to fetch or store the ciphertext. The encryption itself happens locally, but the storage does not.

Why does saving take a second?

That is the 310,000 PBKDF2 iterations running in your browser. It is intentional: the same cost applies to every guess an attacker makes against your password.

Write your first encrypted note

No account, no email address, no download. Type a note, set a password, share the link.

Open the notepad