Skip to content

norwoodj/hashbash-backend-go

Repository files navigation

Hash Bash Backend Go

rainbow tables page

This project is a rewrite of the hashbash-backend-java project I wrote a couple years ago. That project was itself a rewrite of a C++ implementation of rainbow tables that I wrote in college.

The goal in writing the java version was both to implement a web interface around rainbow tables, providing a frontend for viewing/searching rainbow tables, and to implement the generation of rainbow tables using spring batch. The company I worked for at that time heavily used spring batch, java, and react and so writing that project was my way of getting a deep-dive into all of those technologies.

This version of the project is a complete rewrite of the java version of the project in go. I love go, and have been trying to convince my coworkers/friends/grandparents of its merits for a long time, to little avail.

This version of hashbash is my next aggressive attempt to convince everyone. I have compared the performance of the java and go versions of this project and compiled the results into a blog post.

Aside from proving to the world how great go is, this was an excellent opportunity to get more familiarity with writing complicated applications in go, as well as gaining experience using the following wonderful libraries:

Building and Developing Locally

There is a docker-compose setup for running locally. To start run the following, then navigate to http://localhost:23280 in your browser.

make run

To build the go binaries:

make

To build the docker images

make images

To run the application on your host machine, with rabbitmq and mysql in docker:

make run-deps

And finally, to publish the docker images to a docker registry:

make push