Password-protect multiple PDFs in one pass

Batch protecting PDFs means encrypting many files with a password in one pass instead of one at a time; this tool applies a single AES-256 password to every PDF in your stack using qpdf compiled to WebAssembly, running entirely in your browser. The password and the files never leave your device, and each file is encrypted in its own fresh engine instance.

Batch protect PDFs — runs on your device

How it works

PDF encryption is not a wrapper around the file — it is defined inside the format itself. When a PDF is encrypted with AES-256 under the PDF 2.0 scheme, every stream and string object in the document is individually encrypted with a 256-bit AES key, while the file's structural skeleton (the cross-reference table, object numbers, page tree) remains readable so a viewer can navigate the document and know what to ask a password for. The user password you type is not the key itself: it is run through a hardening function and validated against stored hash data in the encryption dictionary, which then releases the actual file key. This is why a properly encrypted PDF cannot be opened by simply renaming or partially reading it.

Doing this correctly in a browser is the job of qpdf, the same open-source engine trusted for command-line PDF encryption for two decades, here compiled to WebAssembly. The engine is about 1.2 MB and is fetched the first time you use the tool, then cached by your browser; nothing else is downloaded afterward. Because WebAssembly executes inside the tab's sandbox, the password you type and the bytes of your documents stay in local memory for the whole run — there is no server component at all, which you can verify by loading the page and then disconnecting from the network before encrypting.

The batch layer feeds each PDF through its own fresh qpdf instance, sequentially. Fresh instantiation per file means no state — buffers, filenames, scratch memory — carries over from one document to the next, and it isolates failures: if one file in the stack is corrupt or already encrypted, that file alone is reported as failed while the remainder of the queue continues. Every file in the run receives the same password and the same AES-256 parameters, so a recipient needs exactly one credential to open the whole set. For per-file passwords, use the single-file protect tool instead.

Illustrative example: 12 payroll statements protected in under a minute

Illustrative scenario, not a recorded benchmark. File sizes, timings and results depend on the input and device. Try the reproducible samples.

An HR administrator needs to email 12 monthly payroll PDFs, 180 to 420 KB each, to an external auditor, and company policy requires every attachment to be encrypted. Done one file at a time, that is 12 rounds of open, type, confirm, save.

Here, all 12 files go in as a single drop and the password is typed once. On first use the 1.2 MB qpdf engine loads in a couple of seconds on an office connection; the encryption itself then takes roughly a second per file, and the whole batch is done in well under a minute. Each output is a few kilobytes larger than its source — the encryption dictionary and per-object overhead add about 2–5 KB per file — and every one now refuses to open in a viewer without the password. The administrator sends the 12 attachments and shares the password with the auditor through a separate channel, which is the step that actually makes the encryption meaningful: a password sent in the same email as the files protects nothing.

Batch protection — frequently asked questions

How do I password protect several PDFs at once?

Drop all the files in together, type the password once, and the tool encrypts each PDF in turn with AES-256. You download the protected copies at the end; every file opens with the same password.

Is the password sent to a server during batch encryption?

No. The qpdf encryption engine is WebAssembly running inside your browser tab, so both the password and the files stay in your device's memory. You can go offline after the page loads and the batch still encrypts.

What encryption standard does batch protection use?

AES-256, the strongest encryption the PDF 2.0 specification defines, applied by qpdf. A PDF protected this way cannot be opened without the password in any mainstream viewer.

Can each PDF in the batch get a different password?

No, one password covers the whole run; that single-entry design is what makes batching quick. To give files individual passwords, run the single-file protect tool once per file instead.

Why does the first batch take a moment to start?

The qpdf WebAssembly engine, about 1.2 MB, downloads on first use and is cached by the browser after that. Once it is loaded, each file encrypts in roughly a second.

What happens if one file in the batch is already encrypted?

Each file runs in its own fresh engine instance, so a file that fails, for example because it already has a password, is reported individually and the rest of the batch continues unaffected. Unlock such files first, then re-run them.

Related tools