Hash Bash Backend Go
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