Skip to main content

Command Palette

Search for a command to run...

pagevault: Hiding an Encryption Platform Inside HTML

pagevault turns any file into a self-contained encrypted HTML page. No backend, no JavaScript libraries. Just AES-256-GCM and the browser's Web Crypto

Published
1 min read
A

Research engineer and computer scientist working at the intersection of machine learning, statistical computing, and cryptography. Currently pursuing my PhD in Computer Science at Southern Illinois University Edwardsville, where I also earned dual master's degrees in Computer Science and Mathematics/Statistics. I believe in the power of open source to accelerate scientific progress. My work focuses on building tools that are both theoretically sound and practically useful—whether it's compositional approaches to language modeling, encrypted search systems that preserve privacy, or statistical methods for reliability analysis with censored data. I maintain 50+ open source repositories with libraries published to PyPI and other package registries. I care deeply about API design, documentation, and developer experience—making complex algorithms accessible to practitioners. As a cancer survivor, I bring a unique perspective on resilience and determination to my work, approaching challenges with both theoretical depth and practical engineering expertise.

HTML is an encryption container format. That sounds wrong, but think about what an HTML file can hold: arbitrary data in script tags or data attributes, a full programming runtime via JavaScript, and a rendering engine (the browser) on every device on the planet. If you embed encrypted data and the code to decrypt it, the result is a file that looks inert until someone types the right password.

pagevault takes this idea seriously. It encrypts files, documents, images, entire websites, into self-contained HTML pages that decrypt in the browser. No backend. No JavaScript crypto libraries. The browser already has AES-256-GCM built in via the Web Crypto API.

The output is a single .html file. You can email it, put it on a USB stick, host it on GitHub Pages, or double-click it on your desktop. It doesn't phone home, it doesn't load CDNs, it doesn't need anything except a browser.

Read the full post with implementation details and benchmarks: metafunctor.com/post/2026-02-13-pagevault/