BaseCrack - Best Decoder Tool For Base Encoding Schemes

March 29, 2022

BaseCrack is a tool written in Python that can decode all alphanumeric base encoding schemes. This tool can accept single user input, multiple inputs from a file, input from the argument, multi-encoded bases, bases in image EXIF data, bases on images with OCR and decode them incredibly fast.

For a basic demo, try the Web Interface that uses BaseCrack's API.

Fun Fact!

I initially made this after being fed up with lame CTF challenges with multi-encoded bases. Now some of them started doing that in Steganography challenges so I automated that too smh!


  • Decode multi-encoded bases of any pattern.
  • Decode bases in image EXIF data.
  • Decode bases on images with OCR detection.
  • Can decode multiple base encodings from a file.
  • Generate a wordlist/output with the decoded bases.
  • Predicts the type of encoding scheme.

Supported Encoding Schemes

  • Base16
  • Base32
  • Base36
  • Base58
  • Base62
  • Base64
  • Base64Url
  • Base85
  • Ascii85
  • Base91
  • Base92
  • Base100 (#14)


$ git clone
$ cd basecrack
$ pip3 install -r requirements.txt
$ python3 -h

NOTE: Python3 is recommended to use!


$ sudo apt-get update
$ sudo apt-get install tesseract-ocr libtesseract-dev


$ brew install tesseract


OCR Detection is implemented with Tesseract and Windows requires installation of the Tesseract executable. Installing the dependencies from requirements.txt which includes pytesseract should install it. If in case it doesn't, here's how you can set it up:

  1. First, check whether you have it installed or not in the Program Files/Program Files (x86) under the Tesseract-OCR directory.
  2. If there is, give that path in config.json and you're all set! If you don't have it, install it from here and set the path in config.json.

Tesseract Docs:

NOTE: I haven't completely tested this tool on Windows so if you stumble upon any issues, please open an issue.


Get a list of all the arguments:

python3 -h

To decode a single base encoding from user input:


To decode a single base encoding from the argument (-b/--base):

python3 -b SGVsbG8gV29ybGQh

To decode multiple base encodings from a file (-f/--file):

python3 -f file.txt

Magic Mode: To decode multi-encoded base of any pattern (-m/--magic):

python3 --magic

To input an image for EXIF/OCR detection mode (-i/--image):

python3 -i image.jpg (--exif/--ocr)

EXIF Data: To decode bases in image EXIF data (-e/--exif):

python -i image.jpg --exif

OCR Base Detection: To decode bases on image with OCR detection (-c/--ocr):

python -i image.jpg --ocr

To generate a wordlist/output with the decoded bases (-o/--output):

python -f file.txt -o output-wordlist.txt

Magic Mode

Now you can decode multi-encoded bases of any pattern in a single shot.

Have you ever stumbled upon that one lame CTF challenge that gives you an encoded string that is just encoded over and over with Base64, Base91, Base85, and so on? Just give that to BaseCrack and you're done with it! ;)

Want to test it out? Just give it this input:


and see for yourself! :)

BaseCrack API

BaseCrack can now be used as a library! Just import the BaseCrack() class and call the decode() function.

See API.


Want to use BaseCrack as a library? We got you covered!

Just put basecrack in your project's directory and you're ready to go!


# import the BaseCrack class from
from basecrack import BaseCrack

# calling the api function decode() with the encoded base
result = BaseCrack().decode('c3BhZ2hldHRp')

# printing the output
result is tuple where:
result[0] = DECODED STRING
print('Decoded String: {}'.format(result[0]))
print('Encoding Scheme: {}'.format(result[1]))


Decoded String: spaghetti
Encoding Scheme: Base64


Ways to contribute

  • Suggest a feature
  • Report a bug
  • Fix something and open a pull request
  • Help me document the code
  • Spread the word

Before you open a PR, make sure everything's good by running the tests:

Unit Tests: (Thanks @FavasM)

python3 -m unittest discover -v -s tests


Licensed under the MIT License, see LICENSE for more information.

Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

1 Comment
Oldest Most Voted
Inline Feedbacks
View all comments
1 year ago

i wanna use the decoder and i cant download python >:(

© HAKIN9 MEDIA SP. Z O.O. SP. K. 2023
What certifications or qualifications do you hold?
Max. file size: 150 MB.

What level of experience should the ideal candidate have?
What certifications or qualifications are preferred?

Download Free eBook

Step 1 of 4


We’re committed to your privacy. Hakin9 uses the information you provide to us to contact you about our relevant content, products, and services. You may unsubscribe from these communications at any time. For more information, check out our Privacy Policy.