Encryption · Node.js and TypeScript
Encrypt a PDF in Node.js
Password-protect a PDF from Node.js with strong AES-256 encryption. rust-pdf applies standard-handler encryption at output, deriving keys and IVs from the operating system CSPRNG, and supports user and owner passwords plus permission flags.
Why Node.js and TypeScript needs this
Node typically reaches for heavy wrappers or headless Chrome for anything past basic output, which is slow, fragile and never archival-grade.
Encryption keeps sensitive documents (statements, records, contracts) confidential and helps meet LGPD, GDPR and HIPAA obligations. rust-pdf implements AES-256 (V5/R6) directly, validated by qpdf for both user and owner passwords, and also supports AES-128 and legacy RC4.
- AES-256 (V5/R6) with keys and IVs from the OS CSPRNG, plus AES-128 and RC4 for legacy needs.
- Separate user and owner passwords, with a read-only permission mode.
- Encrypt new documents or an existing PDF you load and re-save.
Encrypt a PDF in Node.js with rust-pdf
Install the package, then call the same idiomatic API every rust-pdf binding shares. The snippet below is real Node.js code from the reference docs.
const { EditableDoc, Encryption } = require("rustpdf");
const ed = EditableDoc.loadFile("in.pdf");
ed.encrypt({ user: "", owner: "owner-secret",
method: Encryption.Aes256, readOnly: true });
ed.save("secured.pdf"); // throws PdfError without an Encryption license
ed.close();
Node.js basic generation is free. Encryption is a corporate feature, unlocked by one offline license token. See pricing & licensing.
Full Node.js reference in the documentation.
Encryption in Node.js: FAQ
How strong is the encryption?
rust-pdf uses AES-256 with the modern V5/R6 security handler, the strongest standard PDF encryption. Keys, salts and IVs come from the operating system CSPRNG, so every encrypted file is unique. qpdf validates the output for both user and owner passwords.
What is the difference between user and owner passwords?
A user password is required to open the document. An owner password leaves the file openable but restricts actions such as printing or copying. You can set either or both, and enable a read-only permission mode.
Do I need a license to encrypt in Node.js?
Encryption is a corporate feature and needs an active license token. Basic generation in Node.js is free. The same offline token enables encryption in every language.
Encrypt a PDF in Node.js (AES-256)
One Rust core, the same output across every language. Prototype for free, license the corporate features when you ship.