Crucible β€Ή Back to the lab

The field guide

Crucible has six benches. Three read a file apart, three change it. Here's what each one does, how it actually works underneath, and how to use it both ways β€” pulling hidden things out, and putting your own in. Everything runs in your browser; no file is ever uploaded.

Using it as a channelRevealDecodeVerify StripRedactHide
read ↔ build

πŸ”‘ Using it as a channel

Not a way to send β€” a way to read what lands in your lap fast, and build a reply just as fast.

The channel key

Set one shared key in the top-right box. Both sides type the same key β€” that's the whole handshake. Tick remember here and it stays on this device (in this browser only) so you're not retyping it every time. It's a convenience, not a vault: anyone at your unlocked machine could read it, so treat it like the key it is.

Everything that encrypts or decrypts uses AES-GCM with that key stretched through PBKDF2 (150k rounds). The crypto is strong; the weak point is always key handling, so share the key over a different channel than the messages.

Reading what comes in

Whatever lands β€” a photo, a PDF, a file with something welded on, or a blob of text β€” Crucible reads it:

Building the reply

Hit Build a reply under any decrypted message β€” it drops you straight into Hide with the cursor waiting. Type, pick how to hide it (in a photo, welded onto a file, or as a text blob), and it's encrypted with the same key on the way out. Hand it back however you like. Crucible never sends anything itself β€” reading and building is all it does.

read a file

πŸ”¬ Reveal

Drop in any file and see everything it's carrying β€” including the parts nobody meant to leave in.

works on: any file type

What it does

You give it a file, it gives you a full report: what the file truly is, its metadata, every readable string inside it, any other files welded onto it, QR codes, and data tucked into image pixels.

How it works

Magic bytes. Every format starts with a fixed signature β€” %PDF, PK for zips and Office files, \x89PNG. Crucible reads those first bytes instead of trusting the extension, so a .jpg that's really a zip gets caught.

Strings. It walks the raw bytes and collects any run of printable characters (both plain ASCII and the UTF-16 that Windows documents use), then flags the interesting ones β€” flags, URLs, emails, keys, anything that looks like a secret.

Carving. It scans past the start of the file for other formats' signatures. A PNG has a clear end marker; anything after it is a passenger. That's how a zip hidden inside a photo shows up, with a button to pull it out.

Per-format digs. PDFs get their text layer and saved-version count read. Office files get unzipped so hidden or invisible text, leftover comments, and author tags are exposed. Images get their EXIF/GPS read, a QR scan, and a look at their least-significant bits for steganography.

Using it to read

Drop the file. Scan the report top to bottom β€” the amber panels are things worth a second look, the teal ones are all-clear. If something says "possible LSB-hidden text," that image is probably carrying a message. Hit any Extract button to save a carved file to disk.

Using it to write

Reveal is read-only by design β€” it's the bench you check your work against. To create hidden things, use Hide, then drop the result back into Reveal to confirm it reads correctly.

read a file

🧩 Decode

Turn gibberish back into text β€” one encoding, or a stack of them.

works on: text you paste

What it does

Paste something that looks scrambled and Decode reverses the encoding. It handles base64, base32, hex, binary, decimal, URL and HTML escaping, ASCII85, quoted-printable, Morse, ROT/Caesar/Atbash, Vigenère, XOR, gzip/zlib, and JWTs.

How it works

Auto-detect looks at the shape of the input β€” only 0 and 1 with a length divisible by eight is binary; dots and dashes are Morse; eyJ… is a JWT β€” decodes with the best match, and scores the result on how much readable English comes out.

Recipes let you chain operations when one layer isn't enough. Real puzzles are often layered β€” base64 wrapped around gzip wrapped around XOR. You add steps in order and each one feeds the next, so you peel the onion one ring at a time.

Brute-force options exist for the ciphers with tiny key spaces: Caesar tries all 25 shifts, XOR tries all 255 single-byte keys and shows you only the ones that come out mostly readable.

Using it to read

Paste the text and press Auto-detect one layer. If the output is still scrambled, press Send result up to input and detect again — repeat until it's plain. For anything with a key (XOR, Vigenère), add that operation from the dropdown and type the key.

Using it to write

Every codec runs both directions. Add the text β†’ … version of any operation to encode instead of decode. Chain a couple together to wrap your text in layers.

read a file

βœ… Verify

Before you send a "redacted" file, prove the redaction actually removed something.

works on: PDF Β· Office docs Β· images

What it does

A black rectangle drawn over text in a PDF hides nothing β€” the words underneath copy straight out. Verify checks whether that's what happened to your file, and whether earlier versions are still buried inside it.

How it works

Text extraction. It pulls the real text layer out of the PDF the same way a copy-paste would. If words you meant to hide come back, the redaction was cosmetic.

Revision counting. PDFs saved on top of themselves keep every earlier version inside. Each save ends with %%EOF; more than one means edit history β€” and anything "deleted" between saves β€” is still recoverable.

Office internals. For Word, Excel and PowerPoint it unzips the file and looks for invisible text, leftover comments, and track-changes history.

Using it to read

Drop the file. A clean result is a real result: teal panels mean nothing was recoverable. Any amber or red panel is text or history that will travel with the file when you send it.

Using it to write

Verify only checks β€” it never changes the file. When it flags a problem, fix it in Redact (to destroy content) or Strip (to remove metadata), then run Verify again to confirm.

change a file

🧹 Strip

Remove the metadata a file carries without you knowing β€” GPS, names, timestamps.

works on: images Β· PDF Β· Office docs

What it does

Shows you exactly what a file is leaking, then hands back a clean copy with that data gone. A phone photo alone can carry the precise coordinates where it was taken and the camera's serial number.

How it works

Images are re-drawn onto a fresh canvas and re-saved as PNG. The pixels are identical; the metadata block simply isn't written to the new file. That's a guaranteed clean result rather than a best-effort scrub.

PDFs have their title, author, subject, keyword, creator and producer fields emptied.

Office files get their docProps folder removed β€” that's where author, company, revision count and timestamps live β€” and are re-zipped.

Using it

Drop the file, read what it found, and download the cleaned copy. Do this to any photo before posting it publicly.

The reverse of Strip is Hide β€” deliberately putting data into a file β€” and Reveal shows you what's there in the first place.

change a file

⬛ Redact

Cover something so it is genuinely, unrecoverably gone.

works on: images Β· PDF

What it does

You draw boxes over the parts you want removed. Crucible destroys the pixels beneath them and flattens the page, so there's no text layer and no original underneath to recover. This is redaction that passes the Verify bench.

How it works

Images are loaded to a canvas, your boxes are filled solid black into the actual pixels, and the result is re-saved. There was never a separate layer to peel back.

PDFs are the important case. Each page is rendered to an image, your boxes are burned into that image, and a brand-new PDF is built from the flattened page pictures. The original text objects don't survive the trip β€” which is the whole point. The old way of laying a black box over live text is exactly what Verify catches.

Using it

Drop the file, drag boxes over anything sensitive, page through a multi-page PDF (boxes save per page), then Flatten & download. Run the output through Verify to prove it worked β€” a proper redaction comes back with nothing extractable.

A redaction is a preventative measure, not an eviction notice. Once a file has been shared unredacted, treat that copy as public β€” this fixes the copy you send next.
change a file

πŸ«₯ Hide

Put a message or a file somewhere it doesn't show.

works on: any payload Β· image or file carrier

What it does

Conceals what you give it three ways: inside the pixels of an image, welded onto the end of a carrier file, or simply converted to an encoding you can paste anywhere. Any of them can be locked with a passphrase first.

How it works

Inside an image (LSB steganography). Each pixel's color values can shift by one without any visible change. Crucible writes your data into those least-significant bits, one bit at a time, behind a small header that records the length. The picture looks identical; the message rides along in the noise.

On the end of a file. Most viewers stop reading at the file's logical end and ignore trailing bytes. Crucible appends your payload after a marker, so the carrier still opens normally but the data is right there for anyone who looks.

Passphrase. When you set one, the payload is encrypted with AES-GCM (the key stretched from your passphrase with PBKDF2) before it's hidden. Without the passphrase it stays locked even if someone finds it.

As an encoding. The plainest option β€” turn the message into base64, hex, Morse and the like, no carrier needed.

Using it to write

Type your message or attach a file, set a passphrase if you want it locked, pick a method, and create. For the image method, choose a carrier photo β€” the capacity readout tells you how much fits.

Using it to read

Drop anything Hide made into Reveal. It recognizes Crucible's own header and reads the payload straight back. If it was locked, the passphrase gate is honored β€” encrypted data stays unreadable without it.

A closing word on ethics. Finding hidden text in a document means the person who published it failed β€” and the people named in it usually had no say. Court records are public and reading them isn't wrongdoing. But if you turn up someone's private information, the right first move is telling whoever published it, not spreading it. These tools reveal; what you do next is on you.