A perfume formula can be years of work and the core of a business. NoseLab is built so that your formulas are encrypted on your device, before they ever reach our servers — and only you hold the key.
When you enable formula encryption, NoseLab generates a random 256-bit master key in your browser. This key encrypts every formula — its name, ingredients, quantities, dilutions, and notes — before anything is sent over the network.
The master key itself never leaves your device unprotected. It is wrapped (encrypted) with a key derived from your encryption passphrase, and only this wrapped version is stored on our servers. Without your passphrase, the wrapped key is useless.
| Question | Answer |
|---|---|
| Can NoseLab staff read my formulas? | No. We only store ciphertext we cannot decrypt. |
| Can our hosting or database provider read them? | No. Encryption happens in your browser, before upload. |
| If the database were stolen, are formulas exposed? | No. The attacker would obtain unreadable ciphertext. |
| Can NoseLab reset my passphrase if I forget it? | No — by design. Only your recovery code can restore access. |
| Can I export my formulas at any time? | Yes. Excel and CSV export of your decrypted data, anytime. |
We encrypt what is genuinely sensitive and keep the rest queryable, so features like price comparison and stock alerts can work. We believe in being precise about this rather than vague:
| Data | End-to-end encrypted | Why |
|---|---|---|
| Formulas — names, ingredients, quantities, dilutions, notes, IFRA category | Yes | This is your intellectual property. |
| Inventory | No | Needed server-side for stock totals and low-stock alerts. Reveals what you own, not how you combine it. |
| Collection & wishlist | No | Preferences, not trade secrets. |
| Shopping lists | No | Used to build supplier cart links. |
| Accord Research history | No | The accord names and facets you asked the AI about are stored in plain text, linked to your account, so you can reopen past results for free. You can delete any entry at any time. |
All non-encrypted data is still protected by per-user access control (see below) — other users can never see it.
Formula content is encrypted with NaCl secretbox
(XSalsa20-Poly1305 authenticated encryption) using the audited
tweetnacl library, with a unique random nonce per write.
Your passphrase is converted to a key-encryption key with
PBKDF2-SHA256 (310,000 iterations) via the browser's
native Web Crypto API, using a unique random salt per account.
The master key exists in your browser's memory for the duration of a session and is cleared on sign-out. It is never written to our servers in unwrapped form and never appears in logs.
All traffic is encrypted in transit with TLS. Every database table is protected by row-level security, so each account can only ever query its own rows. Authentication uses single-use magic links — there is no login password to leak or reuse.
Fair question — "encrypted" is an overused word. Our claim is
falsifiable: open your browser's developer tools while saving a formula
and inspect the network request. You will see ciphertext, not your
ingredients. The formula data stored on our side looks like
v1.K7mP2qRxBn9… — and that is all we ever receive.
No. Encrypting a typical formula takes a few milliseconds on any modern device. You won't notice it.
Not yet. Encrypted sharing (using public-key cryptography, so the formula is re-encrypted for the recipient without ever being exposed to our servers) is on the roadmap, along with encrypted team workspaces for studios.
Your data is deleted. Encrypted formula blobs are useless without your keys in any case, but we remove them along with the rest of your account data.
Please email security@noselab.app. We read every report and respond quickly. Responsible disclosure is genuinely appreciated.