DDanfio

Unlock PDF

A protected PDF holds two different things, and they are worth telling apart. One is the user password: the file asks for it before it will show you anything. The other is the owner password, which locks printing, copying or editing while the document opens freely for anyone. This tool removes both, from a file you can already open, and it says so plainly rather than pretending to crack anything: you type the password you know, the document is decrypted on your own device, and you get a copy that no longer asks for anything.

Drag & drop a file here, or .

Everything is processed in your browser - nothing is uploaded.

    One PDF up to 25 MB. It is read in this browser tab and never uploaded; the copy is written here too.

    The password you open the file with. It stays in this tab: it is used here, never uploaded, and never put in the page address.

    Leave blank to name the unlocked copy after the file you drop in, with -unlocked added.

    Only used for the plan below, before a file is chosen. The real job reads the document itself.

    Results update as you type. Nothing leaves your device.

    Plan for a 12-page PDF

    No password left

    This removes the password from a PDF you can already open and writes your-file-unlocked.pdf. The original on your device is not touched, and the password is typed into this page: it is never uploaded, never put in the link, and never stored.

    Pages
    12 pages
    Output name
    your-file-unlocked.pdf
    Runs on
    Your device
    Unlocker
    qpdf 11.0.0 (WebAssembly)
    Use this on a document you are entitled to open. Removing the password from a file you do not own can break its licence or the law, and this tool cannot tell whose file it is - it only does what you ask, on your own device.
    A PDF that opens without asking for anything is refused: there is no password to remove, and rewriting it would only produce a new file for no reason. If what you wanted was a smaller file, use Compress PDF instead.
    Certificate-protected files - the kind an employer issues so that only certain people can open a document - are refused, because there is no password to decrypt them with. So are damaged files that a PDF tool can only repair by guessing.
    The unlocked copy has no restrictions left. If the PDF only restricted printing or copying while opening freely, that protection goes away too: a PDF with no encryption left has nowhere to keep it.
    Nothing is uploaded. qpdf runs as WebAssembly inside this tab and pdf.js reads the file here as well, so the copy only ever exists as a download you choose to save.

    Nothing is uploaded and nothing is guessed. qpdf - the same program that runs in a terminal, compiled to WebAssembly - decrypts the file inside this browser tab, and your password is used there and nowhere else: it is not sent, not stored, and deliberately kept out of the page address, so it cannot end up in your history or in a link you copy. And because an unlocked file that quietly lost a page is worse than no file at all, the copy is read back by two other libraries before the download button ever appears.

    How this unlock pdf works

    What a password-protected PDF really stores

    An encrypted PDF keeps an /Encrypt dictionary in its trailer describing how the file was protected: /Filter /Standard for the ordinary password case, a 40, 128 or 256-bit key, and a revision number saying which rules were used - 2 and 3 for RC4, 4 for AES-128, 6 for AES-256. Two keys are derived from the two passwords, and every string and stream is encrypted with a key built from them.

    That is why knowing the password is all it takes. There is nothing to break and no brute force involved: the file carries everything needed to recompute the key, and the password is the missing ingredient. It is also why the tool cannot help with a file whose password you do not have, and why a certificate-protected file is refused outright - there the key is not derived from a password at all, so no password would work.

    The copy that comes out has no encryption left in it, which is the only honest meaning of unlocked: the restrictions an owner password carried - no printing, no copying, no editing - go away with it, because a PDF without encryption has nowhere to keep them.

    The unlocker itself, and why the page still works normally

    The decryption is done by qpdf 11.0.0 (Apache-2.0), compiled to WebAssembly by the @jspawn/qpdf-wasm package. It is the command-line tool itself, not a reimplementation, and it is fetched by this page as an asset of this site - about 1.2 MB raw, roughly 340 KB over the wire - the first time you unlock something.

    This build is the non-threaded one, which matters more than it sounds: it needs no shared memory, so the page needs no cross-origin isolation headers, so nothing else on the site has to change to accommodate it. Each job starts a fresh copy of the module, because qpdf exits once and leaves its runtime spent; measured on a 3 KB AES-256 file, loading and decrypting took about 40 ms in the browser and 23 ms in Node.

    qpdf reports its outcome as an exit status rather than as something this page can read: 0 means clean, 3 means it repaired the file while warning about it, 2 means it refused. Only 0 is accepted. A file that could only be repaired by guessing - which is what a download that never finished looks like - is thrown away with an explanation instead of being passed on.

    Three checks between the job and your download

    First the copy must have no /Encrypt entry left, so it cannot ask for a password again. Then pdf-lib, an unrelated PDF library, has to parse it with no password at all. Finally pdf.js - the reader behind the PDF to Word tool - opens the copy without a password and has to report the same page count, the same first page size and the same first page text as the original did when it was read with your password.

    Those readings are compared exactly, character for character, and a mismatch ends the job with the numbers that disagreed: "12 pages in the original against 11 in the copy", say, or "different text on the first page". No download appears in that case, because a file that opens but is not the same document is the one result worse than an error message. The result panel also names what the file used - AES-256, revision 6, or RC4-40, revision 2 - read from the file's own encryption dictionary.

    The step most tools skip: password normalisation

    PDF 2.0 says a password must be prepared before the key is derived from it, with the SASLprep rules (NFKC plus a set of Unicode mappings). Many readers and writers skip that, and so does qpdf 11.0.0, which leaves a trap: the password that opens the file in your PDF reader can be refused by an unlocker that hands it over unchanged.

    Measured on a sample built for exactly this: a file whose password is "a" but which is typed as U+00AA (the feminine ordinal, which NFKC folds to "a") is refused by qpdf with "invalid password" (exit 2) and unlocks cleanly (exit 0) once the normalisation runs first. This tool therefore tries what you typed, then its prepared form, and finally the empty password - a file can have no user password at all - and it tells you which of those worked and why.

    Worked examples

    Each example below was run through the calculator on this page when the site was built, so the numbers match what you see when you enter the same inputs.

    A 12-page contract you open with a password

    Password
    ••••••••
    Output file name
    contract
    Preview: pages in the PDF
    12 pages

    Plan for a 12-page PDF

    No password left

    This removes the password from a PDF you can already open and writes contract-unlocked.pdf. The original on your device is not touched, and the password is typed into this page: it is never uploaded, never put in the link, and never stored.

    Pages
    12 pages
    Output name
    contract-unlocked.pdf
    Runs on
    Your device
    Unlocker
    qpdf 11.0.0 (WebAssembly)

    The plan is built from the page count and settings alone - the password is only ever shown as a shape here, exactly as the page shows it - because nothing can be read out of a file that has not been dropped in yet.

    A 3-page statement that only restricts printing

    Output file name
    Preview: pages in the PDF
    3 pages

    Plan for a 3-page PDF

    No password left

    This removes the password from a PDF you can already open and writes your-file-unlocked.pdf. The original on your device is not touched, and the password is typed into this page: it is never uploaded, never put in the link, and never stored.

    Pages
    3 pages
    Output name
    your-file-unlocked.pdf
    Runs on
    Your device
    Unlocker
    qpdf 11.0.0 (WebAssembly)

    Files that open without asking for anything still have an owner password: they unlock with the empty password, and the copy has no printing or copying restrictions left either. The result says so rather than claiming a password was removed.

    Frequently asked questions

    Is my PDF, or my password, uploaded anywhere?

    No. The file is read with the browser file API, qpdf runs as WebAssembly inside the tab you are looking at, and the copy is assembled there too. The password is used in that same tab and is not sent anywhere; it is also kept out of the address bar on purpose, so it never lands in your browser history or in a link you copy. Opening the network panel in your developer tools shows the library loading from this site and no request carrying your document.

    The password opens the file in my reader, but the tool says it did not work. Why?

    Usually one of three things. Case and keyboard language matter: a capital letter, or a password typed on a different keyboard layout, is a different password. Some files have no user password at all - they open for anybody, and the password you have is the owner password - so try clearing the box and running it that way. And PDF 2.0 requires a Unicode normalisation step (SASLprep) that many tools skip: this one applies it and tries both forms, so a password containing characters like U+00AA is handled, but a password containing something else entirely still will not be.

    Does it crack or guess passwords?

    No, and it never will. Decryption here means recomputing the key from the password you supply: the job is the reverse of the one the PDF writer did, and there is no brute force in it. If you do not know the password, this tool cannot help, and any site that claims otherwise for an AES-256 file is either working on something trivial or taking your file.

    Which kinds of protection does it handle?

    The ordinary password case at any of the four revisions real documents use: AES-256 (revision 6), AES-128 (revision 4), RC4-128 (revision 3) and 40-bit RC4 (revision 2) - all four were measured end to end before this page was written. Files protected with a certificate handler, where the key is not derived from a password, are refused with an explanation instead of a failed attempt. Damaged files are refused too, and never repaired into a download.

    Are the printing and copying restrictions removed as well?

    Yes, and that is not a side effect - it is what removing an owner password means. A PDF that opens freely but blocks printing carries that restriction inside its encryption, so a copy with no encryption left carries nothing. Keep the original file if you need those restrictions to stay in force.

    How do I know the unlocked file is really my document?

    Because it is read back twice before you are offered it. pdf-lib has to parse the copy with no password, and pdf.js has to open it without one and report the same page count, the same first page size and the same first page text as the original did with your password. Those readings are compared exactly; if anything disagrees, the job ends with the numbers that differed and you get no download at all.

    What happens to a file that is damaged or only half downloaded?

    It is refused. qpdf can often repair a truncated file, but it says so while doing it (exit status 3, "succeeded with warnings"), and a repaired file is not the file you thought you had. That status counts as a failure here: nothing is handed over, and the message says it looks like an unfinished download, because that is what it usually is.

    Can I use it on someone else's document?

    Only with the permission of whoever owns it. Removing the password from a file you are not entitled to open can break its licence or the law, and this tool cannot tell whose file it is - it runs entirely on your own device and simply does what you ask. Treat a protected document like a locked door: the lock is not the point, the permission is.

    Assumptions and sources

    • Decryption: qpdf 11.0.0 (Apache-2.0, qpdf.readthedocs.io), compiled to WebAssembly by the @jspawn/qpdf-wasm package (Apache-2.0). It is the non-pthread build - no SharedArrayBuffer and no cross-origin isolation needed - and the wasm is served from this site as an asset of this page.
    • Measured before this page was written, on samples produced by qpdf itself: AES-256 (V5/R6, /AESV3), AES-128 (V4/R4, /AESV2), RC4-128 (V2/R3), RC4-40 (V1/R2), a file with an empty user password (owner password only, which decrypts with no password at all) and a certificate-protected file (/Filter /Adobe.PubSec, refused). A 3 KB AES-256 sample unlocked to 2.2 KB with exit status 0.
    • Password normalisation: a sample whose user password is "a" but which is typed as U+00AA is refused by qpdf unchanged (exit status 2, "invalid password") and unlocks (exit 0) after NFKC normalisation - the step PDF 2.0 requires (ISO 32000-2 7.6.4.3.2, RFC 4013 and RFC 3454) and qpdf 11.0.0 does not implement. Both forms are tried, and the result says which one worked.
    • Checking the copy: pdf-lib 1.17.1 (MIT) parses the unlocked file without a password and reports its page count, and pdfjs-dist 6.3.289 (Apache-2.0) opens it with no password to compare the page count, the first page size and the first page text against the original read with the password. A mismatch ends the job without a download.
    • Refusal rules: qpdf exit status 0 is required. Status 3 (repaired, but with warnings) and status 2 (refused) both end the job with an explanation, because a file a PDF tool had to guess about is not a file to hand to a visitor. Certificate-protected files, and files with no /Encrypt entry at all, are refused before qpdf is even started.
    • Privacy: no file, file name or password is sent to danfio.com. There is no upload endpoint behind this tool, the password box is kept out of the page URL, and the download is a Blob held in your own tab.
    • Maintenance note: this is a 2022 build of qpdf 11.0.0 from a single maintainer. The encryption samples above are re-run on every upgrade and the dependency is reviewed at least once a year; if upstream stops being maintained, the replacement is another qpdf build or a hand-written decryptor, not a quiet downgrade of the checks on this page.

    Last reviewed 2026-09-14. This page is an estimate tool, not financial, tax or legal advice.Read the full disclaimer.