How to encrypt tax and financial records in your browser
- Step 1Open the tool on Pro with Mode on Encrypt — The AES-256 Encryptor requires the Pro plan; on Free a Pro overlay blocks it. The Mode dropdown defaults to Encrypt — leave it there to seal a financial document.
- Step 2Drop one document — Upload a single file — input type is
any, so a tax-return PDF, a bank-statement PDF, a pay-stub image, or a zipped year of records all work. The tool processes one file at a time (no batch). On Pro the ceiling is 100 MB (Pro + Media 500 MB, Developer 2 GB). - Step 3Set a passphrase you control — Type a passphrase of at least 8 characters into the masked field; shorter is rejected with
Passphrase must be at least 8 characters.This is the only secret protecting the file — there is no key file and no recovery, so save it in a password manager. - Step 4Encrypt locally — PBKDF2 derives the 256-bit key from a fresh 16-byte salt; AES-GCM encrypts the bytes under a fresh 12-byte IV — all in your browser. Nothing about the document or your passphrase is uploaded.
- Step 5Download the .aes and archive or send it — You get
<original-name>.aes(MIMEapplication/octet-stream) containing salt + IV + ciphertext + tag. Store it in your records folder or send it to your accountant — and deliver the passphrase over a separate channel, never in the same email or folder. - Step 6Decrypt when you (or your accountant) need it — Set Mode to Decrypt (the picker then hints
.aes), drop the file, and enter the same passphrase. The tool strips.aesand returns the original document; a wrong passphrase or any tampering throwsDecryption failed — wrong passphrase or corrupted file.
What financial records expose, and what AES-256-GCM protects
The data in these files is exactly what identity thieves want — encryption keeps it out of reach when storage is breached.
| Document | Sensitive data inside | Risk if the folder leaks | After AES-256-GCM |
|---|---|---|---|
| Tax return PDF | Name, SSN/ID, income, dependents, address | Full identity-theft kit | Opaque .aes blob |
| Bank statement | Account number, balances, transactions | Account takeover, profiling | Unreadable ciphertext |
| Pay stub | Employer, salary, partial SSN | Salary disclosure, fraud | Unreadable ciphertext |
| Brokerage 1099 | Account, gains, holdings | Financial profiling | Unreadable ciphertext |
What the encryptor does to the file (fixed in code)
Every parameter is hard-coded via Web Crypto. There is no key-length picker, no cipher menu, no iteration slider — only Mode and passphrase are exposed.
| Parameter | Value | Why it matters for records |
|---|---|---|
| Cipher | AES-GCM, 256-bit key | Authenticated — proves the record was not altered |
| Key derivation | PBKDF2, 100,000 iterations, SHA-256 | Slows cracking of a stolen .aes |
| Salt | 16 random bytes per run | This year's and last year's return never share a key |
| IV / nonce | 12 random bytes per run | Identical documents differ in ciphertext |
| Blob layout | salt(16) + iv(12) + ciphertext+tag | Self-contained — only the passphrase is needed to decrypt |
Plan limits for this tool
Minimum tier is Pro; the tool never accepts more than one file per run.
| Plan | Max file size | Files per run | Access |
|---|---|---|---|
| Free | 10 MB (family limit) | 1 | Locked — Pro overlay |
| Pro | 100 MB | 1 (no batch) | Unlocked |
| Pro + Media | 500 MB | 1 (no batch) | Unlocked |
| Developer | 2 GB | 1 (no batch) | Unlocked |
Cookbook
Practical recipes for sealing financial records, with the exact filenames, byte layout, and error strings the tool produces. Everything runs in your browser tab — no upload, no server, no API.
Encrypt a tax return before archiving it
Your filed return lands in Downloads as plaintext PDF. Encrypt it, store the .aes in your records folder, and delete the plaintext copy.
Mode: Encrypt Input file: return-2031-filed.pdf (2.1 MB) Passphrase: willow-canyon-ledger-44 Local: salt = 16 random bytes iv = 12 random bytes key = PBKDF2(passphrase, salt, 100000, SHA-256) ct = AES-GCM(key, iv, pdf) (tag appended) Downloaded: return-2031-filed.pdf.aes bytes = salt(16) + iv(12) + ciphertext+tag Archive the .aes; delete the plaintext PDF.
Send statements to your accountant securely
Bundle the year's statements into one zip, encrypt it, email the .aes, and give your accountant the passphrase by phone.
Step 1 zip -> statements-2031.zip (jan..dec PDFs)
Step 2 Mode = Encrypt, drop the zip
-> statements-2031.zip.aes
Step 3 email statements-2031.zip.aes to the accountant
Step 4 phone them the passphrase (NOT in the email)
Step 5 accountant: Decrypt -> statements-2031.zip -> unzip
Intercepted email = ciphertext only, no usable data.Decrypt last year's records when you need them
Open the archived .aes, switch to Decrypt, and recover the original PDF. The decrypt path reads salt/IV from the first 28 bytes and strips the suffix.
Mode: Decrypt Input file: return-2030-filed.pdf.aes Passphrase: (from your password manager) Downloaded: return-2030-filed.pdf (byte-for-byte original) Wrong passphrase or an edited .aes: Error: "Decryption failed — wrong passphrase or corrupted file."
Prove a record was not altered in storage
AES-GCM already refuses to decrypt a tampered blob, so a clean decrypt is itself proof of integrity. To document it, fingerprint before and after the round-trip.
Before encrypt: run return-2031-filed.pdf through Multi-Hash Fingerprinter sha-256 = 7d2f0b... (record it) After decrypt: run the decrypted return-2031-filed.pdf through the same tool sha-256 = 7d2f0b... <- matches -> record is unchanged GCM would have rejected an altered .aes before you ever saw a file to hash, so a match confirms full integrity.
Audit the passphrase before you trust years of records to it
These files matter for years. The 8-character minimum is a floor; pick something strong and check it before committing.
Rejected: "taxes25" -> 7 chars -> "Passphrase must be at least 8 characters." Weak but accepted (don't): "taxes2031" -> guessable from context Strong, accepted, SAVED to a manager: "birch-quarry-orbit-ledger-58" Tip: paste a candidate into Password Entropy Auditor to see its bits of entropy before sealing irreplaceable records.
Edge cases and what actually happens
Forgotten passphrase on an archived return
Unrecoverable by designThe passphrase is derived to a key locally and never transmitted, so JAD holds nothing that could open the file. Forget it and the archived .aes is permanently unreadable — there is no reset and no backdoor. For records you must keep for years, save the passphrase in a password manager the moment you encrypt.
Passphrase shorter than 8 characters
RejectedLength is checked before any crypto runs. Under 8 characters throws Passphrase must be at least 8 characters. and nothing is encrypted. It is a hard minimum in code, not a dismissible warning.
Wrong passphrase when decrypting a statement
Decryption failedGCM verifies the auth tag, so a passphrase that does not match produces an invalid tag and the tool throws Decryption failed — wrong passphrase or corrupted file. You never get partial or scrambled output — it returns the exact original or it errors.
A record was edited or corrupted while stored
Decryption failedBecause AES-GCM is authenticated, any change to the salt, IV, ciphertext, or tag invalidates the auth tag and decryption fails with the same message. This is the integrity guarantee: you cannot decrypt a tampered financial record into clean-looking but altered output.
The plaintext document still sits in Downloads
Defeats the protectionEncrypting the file does not remove the original. If the plaintext PDF remains in your downloads folder or cloud trash, it is still exposed. After encrypting, securely delete the plaintext copy. The tool produces the .aes but cannot manage the original on your disk.
Accountant is on the Free plan
Pro requiredDecrypting also requires Pro — the tool has a minimum tier of Pro in both directions. On Free a Pro overlay reads AES-256 Offline Encryptor requires the Pro plan. Either confirm your accountant has Pro before sending, or arrange another secure channel for the records they need to open.
Document exceeds the plan size limit
Exceeds limitFiles are size-checked before encryption. On Pro the ceiling is 100 MB (Pro + Media 500 MB, Developer 2 GB). Over the limit you get File "<name>" is <size> — exceeds the <limit> limit for your plan. A year of statements zipped should fit easily; split if it does not, or upgrade.
Expecting the file's content to be redacted
Out of scopeThis tool encrypts the whole file as-is; it does not find or black out SSNs, account numbers, or other PII inside the document. If you need to redact text within a PDF before sharing, use PDF PII Redactor. The encryptor protects the file as a sealed blob, not selectively within it.
Encrypting several records at once
Single file onlyThe tool takes one file per run with no batch. Zip the records into a single archive and encrypt that, or encrypt each file individually — each separate encryption gets its own random salt and IV. There is no multi-file queue.
Renaming the .aes loses the original filename
ExpectedDecrypt only strips a trailing .aes to recover the name. If you renamed return-2031.pdf.aes to r.bin, decrypt still returns the correct bytes but cannot restore the original filename. Keep the .aes suffix so it round-trips to return-2031.pdf.
Frequently asked questions
Is it safe to email my tax return to my accountant this way?
Yes, with one rule: send the .aes blob by email and deliver the passphrase over a different channel — a phone call or text. The email then carries only ciphertext that the mail provider and any relay cannot read, and the passphrase travels separately. Your accountant decrypts in the same tool on the Pro plan to recover the original.
Can JAD or anyone read my financial documents?
No. Encryption runs entirely in your browser tab via the Web Crypto API, and the passphrase is derived to a key locally and never transmitted. JAD never receives your document, your passphrase, or your key — there is nothing on our side for a breach or legal demand to expose.
Does this redact the SSN or account numbers inside the file?
No — it encrypts the whole file as one sealed blob; it does not search for or black out PII within the document. If you need the sensitive text removed from a PDF before sharing, use PDF PII Redactor first, then optionally encrypt the redacted result with this tool.
How do I know the record was not altered while stored?
AES-GCM is authenticated, so any change to the .aes invalidates the auth tag and decryption fails with Decryption failed — wrong passphrase or corrupted file. A clean decrypt is itself proof the file is byte-for-byte what you encrypted. For an explicit record, fingerprint before and after with Multi-Hash Fingerprinter.
What if I forget the passphrase to records I need at tax time?
There is no recovery — the passphrase is never stored anywhere by JAD, so a forgotten one makes the .aes permanently unreadable. Because these records matter for years, save the passphrase in a password manager the moment you encrypt. Treat the passphrase, not the file, as the thing you must never lose.
Why does encrypting two years' returns give unrelated output?
Each run uses a fresh 16-byte salt and 12-byte IV, so even identical or similar documents produce unrelated .aes blobs and never share a derived key. An attacker who steals your records folder cannot tell which years contain similar data, and rainbow-table precomputation does not apply.
Can I encrypt a whole year of statements in one step?
Not directly — the tool encrypts one file per run with no batch. Zip the year's statements into a single archive and encrypt that one archive; your accountant decrypts then unzips. Alternatively encrypt each statement individually, each with its own random salt and IV.
How strong does the passphrase need to be for tax records?
The tool enforces a minimum of 8 characters, but for records that matter for years use a long passphrase of several random words. PBKDF2 at 100,000 iterations slows brute-force of a stolen .aes, but it cannot rescue a short or guessable passphrase. Audit candidates with Password Entropy Auditor before committing.
Will AES-256 still protect records archived for a decade?
Yes. AES-256 retains roughly 128-bit effective security even against quantum search, considered safe well beyond 2030. The durable risk to long-archived records is a forgotten or weak passphrase, not the cipher — choose a strong passphrase and store it where you will still have it years later.
Should I delete the original PDF after encrypting?
Yes. Encryption produces the .aes but leaves the original on disk. If the plaintext PDF stays in Downloads or cloud trash, your data is still exposed. Securely delete the original after confirming the .aes decrypts correctly, so the only remaining copy is the encrypted one.
Is this better than my cloud provider's encryption?
It is independent of it. Cloud providers usually hold the keys to their own encryption, so they (and a breach or subpoena) can read your files. Encrypting with this tool first means the provider stores only ciphertext it cannot open — your .aes is sealed regardless of the provider's own security.
Can I tell whether a file already looks encrypted before re-wrapping it?
Yes — encrypted or compressed data has near-maximal entropy. Run a file through Entropy Analyzer to check whether its bytes already look random before encrypting it again. Double-encryption works (you decrypt twice in reverse) but is rarely what you intend.
Privacy first
Every JAD Security operation runs entirely in your browser. Files, passwords, and PGP private keys never leave your device — verified by zero outbound network requests during processing.