CryptoCalculator
About this Project

Project History:


Original Version:

This project was originally started using just basic HTML and Javascript for the calculations and formulas.

The first version has the basic calculations and input fields available to use, however due to the size limitations of
of the Integer restrictions in Javascript such as a value can not be larger than 9007199254740991
or it causes an error and doesn't calculate the equation correctly.


You can view the original version at:

BigInt Calculator Version:

The second version of the calculator uses a Big Integer Javascript library which allows for the processing and calculations
of extremly large numbers. This allowed for further functions to be created and generate higher valued results.

This version also started to implement a crypto.js javascript library in order to demonstrate the usage of AES, DES and blockchain
related objects, however, due to the limitations of vanilla javascript, it wouldn't allow the simple saving of object variables.
The variables were able to be saved as a string in local storage, but when converted back to an object to use, the format of the `Block`
was changed and not re-usable in the same way with ease.

You can view the BigInt version at:

Nuxt.Js Calculator Version:

The BigInt calculator worked quite well with functionality for elgamal, paillier, and the
general tools and modulus functions. It was even working well with the crypto.js javascript library for blockchain,
which allowed for SHA256, MD5, etc encryption and decryption.

Using vanilla Javascript, caused an issue with being able to store and save the object and then re-use them
as when storing them in session or local storage it changed the object to a string,
and then when converting the string back to an object there were occasional transform issues.

By using Nuxt.js, we can create a functional application that can save an object state and retrieve it from the state
in order to use it again. Along with that, the bigInteger library and crypto.js library also have NPM packages that can be
installed and setup alongside with Nuxt.js.

If you're reading this, you're already on the Nuxt.js version, but to go back to the home
page, you can follow the link bellow: