Secure Share — Getting Started

A complete walkthrough for MaiPDF Secure Share on drm.maipdf.com. The main maipdf.com site is for PDF-to-link online sharing; Secure Share is for encrypted HTML files with expiry and open-count controls.

Last updated: 2026-04-28 · Reading time ≈ 12 min

1What Secure Share actually does

You upload a PDF. MaiPDF Secure Share encrypts it in your browser session, then bundles the encrypted PDF together with a viewer into a single, self-contained HTML file. You download that HTML file.

That HTML file is what you send to your readers. They double-click it, the page connects to our server once to verify they are allowed to read, and the PDF appears inside the page — pages, zoom, watermark, all of it.

Three things to remember
  • We never store your PDF. Only a small database row with a license ID, half of the encryption key, and your modification code lives on our side.
  • The HTML file works on any computer. No app to install. Just a browser and an internet connection at the moment of opening.
  • You control the rules. How many opens? When does it expire? You set those at pack time and change them later.

If your reader exhausts the open count, or the link expires, or you delete the license — the HTML file becomes a useless block of ciphertext. There is no way to extract the PDF from a revoked or expired HTML file, even by you, without going back through MaiPDF Secure Share.

2Choosing how to use it

There are exactly two ways to use MaiPDF Secure Share, and you can mix them freely. Pick whichever feels right for the moment; you can always switch later.

Anonymous (Path A) Signed in with Google (Path B)
Account required No Yes (Google)
Time to first pack ~30 seconds ~30 seconds + one Google popup
Where you manage the file /manage page, paste two codes /dashboard page, click buttons
Need to remember a code Yes — the Modification Code No — the dashboard remembers everything
Lose your codes License is stuck in its current state until it expires; only the operator can recover Your license belongs to your Google account; never "lost"
One-click revoke / extend Open /manage, paste codes, click Open /dashboard, click
Best for Quick one-offs, sharing with someone you don't want to know about the protection service Anyone with more than 2-3 PDFs to manage; ongoing use
Important Both paths produce the same kind of locked HTML file. Your reader cannot tell whether the license behind it is anonymous or attached to an account.

3Path A — Anonymous (no account)

The fastest possible flow. No signup, no email, no Google.

  1. Visit the site

    Open https://drm.maipdf.com in any modern browser (Chrome, Firefox, Edge, Safari).

  2. Drag your PDF onto the upload zone

    You'll see a clear "Drag & drop a PDF, or click to browse" box near the top. Drop a single PDF (up to 65 MB), or click to pick. The file stays in your browser until you click Pack — nothing is uploaded yet.

  3. Configure how the file behaves

    Max opens — how many times this PDF can be opened in total. Default 5. Type any number, click a preset chip (1, 3, 10, unlimited), or set -1 for unlimited.

    Expiration — pick a duration from the dropdown. The page immediately shows you the exact UTC expiry timestamp and the same time in your local timezone, so there's no ambiguity.

    Display filename (optional) — overrides what your reader sees as the title inside the viewer.

  4. Click "🔐 Pack & Download"

    A few seconds pass while the file is uploaded and encrypted. You get back a ZIP, downloaded automatically. Inside is a single HTML file like MaiPDF-SecureShare-yourdocument-locked.html.

  5. Save your codes — this is the critical step

    Two codes appear after packing:

    • Reading Code — already embedded in the HTML; you generally don't need to send it separately.
    • Modification Code — a 26-character secret. You must save this before leaving the page.
    No recovery There is no email recovery. There is no "forgot password" flow. If you close the tab without saving the Modification Code, you lose the ability to manage the license.

    A password manager (1Password, Bitwarden, Apple Keychain, Chrome's saver) is ideal. Both codes have a "Copy" button next to them — use it.

  6. Send the locked HTML to your readers

    Email it. Drop it into Slack. Upload it to Drive. Put it on a USB stick. Any way you would share a regular file works. You do not need to send them the codes.

  7. (Later) Manage the license

    Go to /manage. Paste the License ID and Modification Code. Click Check status to see a tidy table — filename, status, opens used / total, expiration, last opened. From there you can add opens, extend, pause, or delete in one click each.

4Path B — Signed in with Google

If you have more than two or three PDFs to manage, or you don't want to keep track of modification codes, sign in.

  1. Click "Sign in" in the top-right of the home page

    A Google popup appears. Pick the account you want to use. There is no password — Google's OAuth handles everything.

    After the popup closes, you stay on the home page. The "Sign in" button is replaced with your avatar, your email, and a 📋 Dashboard link. A green banner inside the upload section confirms "Signed in as you@example.com. New packs will be attached to your account automatically."

  2. Pack a PDF the same way as Path A

    Drop a PDF, set the rules, click pack. The same two codes appear afterward. The Modification Code is still generated, but in Path B you don't need to save it — the license is permanently attached to your Google account, and the dashboard remembers it.

    Why might you still want it? To delegate management to someone without giving them your account, as a backup credential, or simple habit.

  3. Open the dashboard

    Click 📋 Dashboard in the top-right. You see a table of every license you've packed while signed in, with one-click View / Edit / Pause / Delete buttons on every row. No code paste required — your Google session proves ownership.

  4. Filter and paginate

    Use the Status dropdown to show only active / revoked / deleted licenses. Per-page settings and pagination handle larger libraries.

  5. Bind an old anonymous license to your account

    If you packed something while not logged in, click + Bind existing at the top of the dashboard. Paste License ID + Modification Code, confirm, and from that moment the license appears in the dashboard table — no mod code required to manage it from now on.

    One-way You cannot un-bind a license once it's attached. Think before you bind a license you intend to share with a co-manager.
  6. Sign out

    Click Logout in the top-right. Your session is cleared from this browser. Your licenses still exist; they just need a fresh sign-in to see them again.

    Note: signing in on drm.maipdf.com is separate from maipdf.com. Each subdomain manages its own session.

5What your readers see

Knowing the reader's experience helps you decide which settings to use.

First open

Your reader receives the HTML file (e.g. MaiPDF-SecureShare-report-locked.html). They double-click it. Their browser opens a dark "Protected" page with the filename and a single button: "Open · Unlock". Below the button is a hint reminding them that opening will consume one of the available views.

Reading

The PDF appears inside a clean dark-themed viewer with:

  • Page navigation, zoom, fit-to-width, fit-to-page, fullscreen
  • A small badge in the top right showing how many opens remain ("4 left")
  • A diagonal watermark on every page — last 8 chars of the License ID + local time + UTC offset, useful for tracing leaks

Restrictions

The viewer blocks common copy / save shortcuts:

  • Right-click is disabled
  • Ctrl+S, Ctrl+P, Ctrl+U, F12, Ctrl+Shift+I/J/C are intercepted
  • The print dialog is neutralized via CSS
  • A blur shield drops over the content when the tab is no longer visible
Honest disclaimer These are user-experience friction, not unbreakable barriers. A determined user with browser developer tools can still extract the decrypted PDF — see the threat model in Section 9.

When the license runs out

If "Open · Unlock" hits a license that is exhausted / revoked / expired / deleted, the reader sees a clear message and no PDF appears. The HTML file becomes permanently inert from their side — refreshing or copying it elsewhere does not help.

Reader tip Every successful click of "Open · Unlock" consumes one view. Leaving the tab open does not. Tip your readers to leave the tab open while they read; closing and reopening spends another view.

6Managing licenses: every option explained

Whether you're on /manage (anonymous) or /dashboard (signed in), the actions you can take are the same.

Add opens

Adds (or subtracts) from the maximum number of allowed views. Negative values reduce the cap. Cannot be applied to an unlimited (-1) license.

Extend by seconds

Adds seconds to the expiration. If already expired, the addition is from "now". Negative numbers shorten.

86400 = 1 day · 604800 = 7 days · 2592000 = 30 days

Pause (Revoke)

Sets status to revoked. Readers see "License has been revoked." Row, audit, and modification code are preserved. Use Resume to undo.

Resume

Reverses Pause. Sets status from revoked back to active.

🗑Delete

Marks status deleted. Readers see "License not found." You cannot resume from your dashboard — only the operator can recover (no SLA).

💥Hard delete

Operator-only. Physically removes the row + audit + key half. Irrecoverable after 30 days. Not exposed to end users.

Why the asymmetry on Delete Delete is "soft" on purpose. It gives you a clear "I really mean it" option that doesn't accidentally come back from a stale tab refresh, while still preserving the data behind the scenes for legitimate recovery requests.

7Settings reference

These are the only three things you set at pack time. Defaults work for most cases.

Max opens

  • Default: 5
  • Range: any positive integer, or -1 for unlimited
  • Counts: each successful "Open · Unlock" click. Failed attempts and "leave tab open" do not count.

What to choose:

  • 1 — "this is for you alone, one read"
  • 3-5 — comfortable for a single reader who might re-open a few times
  • 10-20 — a small audience or a long reading project
  • 100+ — consider whether you should be using a public PDF host instead
  • -1 — permanent access, no counter

Expiration

  • Default: 7 days
  • Choices: 1 hour, 3 hours, 24 hours, 7 days, 30 days, custom days, never expire
  • Live preview: the page always shows you the exact UTC time and your local time (auto-detected from your browser, but you can pick another timezone from the dropdown). No guessing.

Display filename

  • Default: your original PDF filename
  • What it does: appears as the title inside the locked viewer. Does not rename the actual file you download.
  • When to override: when your original filename has personal info you don't want the reader to see ("draft-version-7-final-FINAL.pdf"), or when you want a friendlier title for the reader.

8Best practices

1. Treat the Modification Code like a password Anyone with it has full control. Don't paste it into Slack, public Docs, or anything indexable. A password manager is ideal.
2. Don't share the Modification Code with the reader The reader doesn't need it. The locked HTML already contains the Reading Code embedded. Send only the HTML.
3. Sign in when you'll have many files If you anticipate managing more than 2-3 PDFs, the dashboard is dramatically less painful than juggling Modification Codes.
4. Use Pause before Delete when in doubt If you're not 100% sure, pause first. Wait a day. If nothing breaks, then delete. There's no penalty for paused licenses.
5. Keep one ZIP per file you care about After packing, click "Re-download ZIP" to get another copy. Store one safe copy yourself before sending out.

9Limits & honest threat model

We are honest about what MaiPDF Secure Share can and cannot do.

What we do well

  • AES-256-GCM encryption of the PDF content. No backdoors.
  • No PDF stored on our servers. Only metadata.
  • Open-count and expiry enforcement is server-side and atomic.
  • Anti-automation chaff — server returns 12 candidate keys with 11 random decoys, slowing AI / bulk scrapers.
  • Watermarks that survive cropping & recompression on every page.

What we do not protect against

  • A patient human with browser developer tools. The viewer must decrypt the PDF in the reader's browser to display it; that decrypted byte stream is, in principle, extractable.
  • Screenshots and screen recordings. Pixels on screen leave the system the moment they're displayed. Watermarks give a forensic trail, not a stop.
  • Photos of the screen with another device. Out of the question — no DRM defeats this.

Hard limits

  • Maximum upload size: 65 MB per PDF. Above this, the upload is rejected. (Cloudflare Workers platform body-size limit, not arbitrary.)
  • Open count storage: integer. Functionally unlimited (billions).
  • License retention: indefinite as long as we're running.
  • Concurrent opens: not throttled. If 100 readers click Open at the same instant and max_opens = 5, the first 5 succeed and the next 95 see "exhausted".

What "free" means right now

MaiPDF Secure Share is currently free, running on free-tier Cloudflare Pages and D1. If usage grows beyond that, we may add per-IP rate limits or paid tiers. What will not change: licenses you've already packed will continue to work via their existing modification codes / accounts. We will not pull the rug.

10Switching languages

Every user-facing page (/, /manage, /dashboard, the locked HTML viewer) has a compact language dropdown. Choose English, 中文, 日本語, Deutsch, or Français. The choice is saved in your browser's local storage and persists across sessions.

If you've never picked a language, the page auto-detects your browser language: Chinese, Japanese, German, and French browsers default to their matching language; everything else defaults to English.

The dropdown does not affect anything sent to the server or visible to your readers — it's purely a presentation choice for your browser.

11Help & recovery

"I lost my Modification Code. What do I do?"

If you have not signed in: The license is stuck in its current state. It will continue to work according to its existing rules until those run out. Sign in with Google now and pack a fresh locked HTML for the same PDF; ask your readers to use the new file. For high-stakes recovery, contact the operator.
If you have signed in: Your dashboard is the authoritative source. Just go there and manage normally — no Modification Code needed.

"My PDF is gone — I deleted it from /manage and now I need it back."

If the user-side Delete button was used (status = deleted), the row, audit, and key half are still on our servers. The operator can restore status to active if you contact them and verify ownership.

If the operator's Hard Delete was used, the data is gone unless within the 30-day backup window (Cloudflare D1 Time Travel). After 30 days: nothing.

"My reader can't open the file."

Check, in order:

  1. Is the license active? (Use /manage or /dashboard.)
  2. Has the open count been exhausted?
  3. Has the expiry passed?
  4. Is the file the latest version you packed? (If you re-packed, old HTMLs may fail.)
  5. Is your reader's clock dramatically off?
  6. Is your reader behind a strict firewall blocking drm.maipdf.com?

"I'm stuck and none of the above helps."

Reach out to the operator (contact info in the site footer). Include your License ID, what you tried, a screenshot of any error, and whether you're signed in (and which Google email).

That's everything. You now know more about MaiPDF Secure Share than 95% of users will ever need. Bookmark this page, share it with your team, and pack confidently.