I’ve long been interested in Digital Securtiy and Cryptography, but the math seemed to be above my level of comprehension.

Very recently I revisited one of my very earlier projects and decided to start making a web version of it.

Revisiting CryptX

It started as a simple project to learn programming along with my studies. And while I had my own implementation of encryption algorithms, I quickly realized the hard way, it is best to use an industry standard algorithm.

The desktop versions can be used to quickly encrypt and decrypt files on a desktop environment. But in the modern times, a web or mobile app version would be very much useful. Among them, a web application has a much quicker turnaround time.

History of the project

I always wanted to summarize the different iterations, and been able to dig up source code and builds from earlier versions and upload to Github. So listing all important information below.

Version Language Algorithm Comment Repo
CryptX 1 (2006) C Simple Text mode Source code lost
CryptX 2 (2006 C & JS Simple Text and Binary Source code lost
CryptX 3 (2006) C & JS Simple Extra settings file Source code lost
CryptX 4 (2007) C & JS MD5 for Password HTA UI Repo
CryptX 5 (2008) C++ & JS 128 bit AES HTA UI Repo
CryptX 6 (2011) ActionScript 128 bit AES Green Threads Repo
CryptX Web (2021) JavaScript 256 bit AES SvelteJS Repo

The first couple of versions were command line applications written in C, with 4 and 5 using a HTA UI and javascript bridge layer for invoking the application. I would have to create a future post about HTA UI for historical documentation purposes.

CryptX Web

Developing the CryptX Web took just half a day, owing to the use of SveletJS framework and Bulma CSS for styling. More time went into final polish and researching on using CryptoJS library.

There were a few reasons for choosing Svelte, which includes faster development and the Svelete compiler that compiles to vanilla javascript. And finally due to this, the code executes on the client browser and no data is sent back through the network.


I do have a plan to make a tutorial for the web version of this project sometime in the future.