I built a tool to detect if a PDF was tampered with — here's what I learned
PDF files keep a structural history of every save operation. If someone opens an invoice and changes the amount, the file records it at the byte level — different Creator/Producer fields, an extra xref revision, modified timestamps.
I built HTPBE.tech to read that history and return a binary answer: was this PDF modified after creation?
Six months in, the hardest part wasn't the detection algorithm — it was explaining to people why "inconclusive" is a meaningful result, not a failure.
Happy to answer questions about the technical side.
Interesting problem.
I’ve been thinking a lot about “trust” in outputs recently, especially with AI.
Even with code, different models can give conflicting results, which makes validation harder than expected.
Feels like relying on a single source isn’t enough anymore.