Skip to main content

Automated decryption tool using machine learning & common sense

Project description

Ciphey

Ciphey Ciphey

What is this?

Ciphey is an automated decryption tool. You put in encrypted text, and it outputs the decrypted text.

"What type of encryption?"

That's the point. You don't know. Ciphey will find out and do it for you.

How does it work?

You input a string (via a file, or via a terminal)

Ciphey uses a Deep Neural Network to create a probability distribution (softmax).

This distribution gives how likely it is to be a hash, a basic encoding (hex, binary) or encryption (such as caeser, aes etc) Ciphey will then work through each cipher to try and decode it.

Ciphey uses the language module (app/languageChecker) to determine both the language something is written in, and whether or not that string is valid in that language. So Ciphey would say "hello my name is whiteboard" is English. But it wouldn't say "iaid i2iv ria9i" is a language.

Using the probability distribution, Ciphey calls each object on a new thread. Yes, Ciphey is multi-threaded.

Ciphey is designed from the groundup to be as fast as physically possible. The second it sees the answer, it will stop and return that answer.

What encryptions can Ciphey deal with?

Not just encryptions, but hashes and encodings too.

  • Vigenère cipher
  • Affine cipher
  • Transposition Cipher
  • Pig Latin
  • Morse Code
  • Ascii
  • Binary
  • Base64
  • Hexadecimal
  • Caesar Cipher
  • Reverse (palindrome)
  • Sha512
  • MD5
  • Sha1
  • Sha384
  • Sha256

How to install

pip3 install ciphey

How to use

In Terminal:

ciphey

The internal data packet

This is the data packet specification Ciphey uses. To pass data around the different modules and to language checker, it is neccesary to use an internal data packet.

{"lc": self.lc, "IsPlaintext?": True, "Plaintext": translated, "Cipher": "Caesar", "Extra Information": "The rotation used is {counter}"}

How to contribute

Ciphey is always in need of more decryption tools!

  1. Write a decryption tool (this can include encodings such as Base64 too). Make sure it has a decrypt function and is a class.
  2. For each possible decryption, call self.lc.checkLanguage(translated) where translated is the decrypted text. Note by default, all decryption modules when instantiated get passed Language Checker (lc). Look at this for example:
    def __init__(self, lc):
        self.lc = lc
  1. If result returns True, it is successfully decrypted to English. Return the internal data packet but make sure to change the information to match your decryption module.
  2. Create a new object in the parent class. For example, in Encoding the parent is encodingParent.py. Simply add your object to the list of other objects. For encodingParent.py this list of objects is currently:
        self.binary = Binary(self.lc)
        self.base64 = Base64(self.lc)
        self.ascii = Ascii(self.lc)
        self.hex = Hexadecimal(self.lc)
        self.morse = MorseCode(self.lc)

And then add the new object to the list of objects:

self.list_of_objects = [self.caesar, self.reverse, self.pig]
  1. It'd be nice if you wrote some tests for it, but if you don't know much about testing no worries! I can write the tests for you :)
  2. I'll put your name on the list of contributors!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Ciphey-3.0.3.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

Ciphey-3.0.3-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file Ciphey-3.0.3.tar.gz.

File metadata

  • Download URL: Ciphey-3.0.3.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for Ciphey-3.0.3.tar.gz
Algorithm Hash digest
SHA256 8ecb99388aac12ecd790f6d544caa27ba06bc7a21428228c02a6ecc9b76abb25
MD5 85a7f319f481137e506fce818a7768e9
BLAKE2b-256 355fff3d46db25a522cb6cf6011ed4f9d51b214e40f037328a80851d36cdd44a

See more details on using hashes here.

File details

Details for the file Ciphey-3.0.3-py3-none-any.whl.

File metadata

  • Download URL: Ciphey-3.0.3-py3-none-any.whl
  • Upload date:
  • Size: 3.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for Ciphey-3.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6a6a804c9cebd3e847fcd46c7edd8ef5f2532774d1b6b15e6128e58f0e18d310
MD5 1e578b4cae8cd2321a21d7c1d02c0dfb
BLAKE2b-256 2fe5aca78af61e2ef2d9e281b6d2f58e8af355caad08fce9acf6cf0e11176948

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page