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.
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.
- 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 |
3Path A — Anonymous (no account)
The fastest possible flow. No signup, no email, no Google.
-
Visit the site
Open
https://drm.maipdf.comin any modern browser (Chrome, Firefox, Edge, Safari). -
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.
-
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
-1for 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.
-
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. -
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.
-
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.
-
(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.
-
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."
-
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.
-
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.
-
Filter and paginate
Use the Status dropdown to show only
active/revoked/deletedlicenses. Per-page settings and pagination handle larger libraries. -
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. -
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.comis separate frommaipdf.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/Care intercepted- The print dialog is neutralized via CSS
- A blur shield drops over the content when the tab is no longer visible
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.
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.
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
-1for 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
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?"
"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:
- Is the license active? (Use
/manageor/dashboard.) - Has the open count been exhausted?
- Has the expiry passed?
- Is the file the latest version you packed? (If you re-packed, old HTMLs may fail.)
- Is your reader's clock dramatically off?
- Is your reader behind a strict firewall blocking
drm.maipdf.com?
"I'm stuck and none of the above helps."
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.