Coder Social home page Coder Social logo

ciphey / ciphey Goto Github PK

View Code? Open in Web Editor NEW
17.0K 232.0 1.1K 16.74 MB

⚡ Automatically decrypt encryptions without knowing the key or cipher, decode encodings, and crack hashes ⚡

License: MIT License

Python 100.00%
decryption natural-language-processing cryptography cipher artificial-intelligence ctf-tools ctf cpp python hacking

ciphey's Introduction

Translations
🇩🇪 DE 🇫🇷 FR 🇭🇺 HU 🇮🇩 ID 🇮🇹 IT 🇳🇱 NL 🇧🇷 PT-BR 🇷🇺 RU 🇨🇳 ZH 🇹🇭 TH

➡️ Documentation | Discord | Installation Guide ⬅️
Ciphey

Discord Ciphey
Fully automated decryption/decoding/cracking tool using natural language processing & artificial intelligence, along with some common sense.


🐍 Python

🐋 Docker (Universal)

🍎 MacPorts (macOS)

🍺 Homebrew (macOS/Linux)

python3 -m pip install ciphey --upgrade docker run -it --rm remnux/ciphey sudo port install ciphey brew install ciphey
Linux Mac OS Windows
GitHub Workflow Status GitHub Workflow Status GitHub Workflow Status

🤔 What is this?

Input encrypted text, get the decrypted text back.

"What type of encryption?"

That's the point. You don't know, you just know it's possibly encrypted. Ciphey will figure it out for you.

Ciphey can solve most things in 3 seconds or less.

Ciphey demo

Ciphey aims to be a tool to automate a lot of decryptions & decodings such as multiple base encodings, classical ciphers, hashes or more advanced cryptography.

If you don't know much about cryptography, or you want to quickly check the ciphertext before working on it yourself, Ciphey is for you.

The technical part. Ciphey uses a custom built artificial intelligence module (AuSearch) with a Cipher Detection Interface to approximate what something is encrypted with. And then a custom-built, customisable natural language processing Language Checker Interface, which can detect when the given text becomes plaintext.

No neural networks or bloated AI here. We only use what is fast and minimal.

And that's just the tip of the iceberg. For the full technical explanation, check out our documentation.

✨ Features

  • 50+ encryptions/encodings supported such as binary, Morse code and Base64. Classical ciphers like the Caesar cipher, Affine cipher and the Vigenere cipher. Along with modern encryption like repeating-key XOR and more. For the full list, click here
  • Custom Built Artificial Intelligence with Augmented Search (AuSearch) for answering the question "what encryption was used?" Resulting in decryptions taking less than 3 seconds.
  • Custom built natural language processing module Ciphey can determine whether something is plaintext or not. Whether that plaintext is JSON, a CTF flag, or English, Ciphey can get it in a couple of milliseconds.
  • Multi Language Support at present, only German & English (with AU, UK, CAN, USA variants).
  • Supports encryptions and hashes Which the alternatives such as CyberChef Magic do not.
  • C++ core Blazingly fast.

🔭 Ciphey vs CyberChef

🔁 Base64 Encoded 42 times

Name ⚡ Ciphey ⚡ 🐢 CyberChef 🐢
Gif The guy she tells you not to worry about You
Time 2 seconds 6 seconds
Setup
  • Run ciphey on the file
  • Set the regex param to "{"
  • You need to know how many times to recurse
  • You need to know it's Base64 all the way down
  • You need to load CyberChef (it's a bloated JS app)
  • Know enough about CyberChef to create this pipeline
  • Invert the match

Note The gifs may load at different times, so one may appear significantly faster than another.
A note on magic CyberChef's most similar feature to Ciphey is Magic. Magic fails instantly on this input and crashes. The only way we could force CyberChef to compete was to manually define it.

We also tested CyberChef and Ciphey with a 6gb file. Ciphey cracked it in 5 minutes and 54 seconds. CyberChef crashed before it even started.

📊 Ciphey vs Katana vs CyberChef Magic

Name ⚡ Ciphey ⚡ 🗡️ Katana 🗡️ 🐢 CyberChef Magic 🐢
Advanced Language Checker
Supports Encryptions
Releases named after Dystopian themes 🌃
Supports hashes
Easy to set up
Can guess what something is encrypted with
Created for hackers by hackers

🎬 Getting Started

If you're having trouble with installing Ciphey, read this.

‼️ Important Links (Docs, Installation guide, Discord Support)

Installation Guide Documentation Discord Docker Image (from REMnux)
📖 Installation Guide 📚 Documentation 🦜 Discord 🐋 Docker Documentation

🏃‍♀️Running Ciphey

There are 3 ways to run Ciphey.

  1. File Input ciphey -f encrypted.txt
  2. Unqualified input ciphey -- "Encrypted input"
  3. Normal way ciphey -t "Encrypted input"

Gif showing 3 ways to run Ciphey

To get rid of the progress bars, probability table, and all the noise use the quiet mode.

ciphey -t "encrypted text here" -q

For a full list of arguments, run ciphey --help.

⚗️ Importing Ciphey

You can import Ciphey's main and use it in your own programs and code. from Ciphey.__main__ import main

🎪 Contributors

Ciphey was invented by Bee in 2008, and revived in 2019. Ciphey wouldn't be where it was today without Cyclic3 - president of UoL's Cyber Security Society.

Ciphey was revived & recreated by the Cyber Security Society for use in CTFs. If you're ever in Liverpool, consider giving a talk or sponsoring our events. Email us at [email protected] to find out more 🤠

Major Credit to George H for working out how we could use proper algorithms to speed up the search process. Special thanks to varghalladesign for designing the logo. Check out their other design work!

🐕‍🦺 Contributing

Don't be afraid to contribute! We have many, many things you can do to help out. Each of them labelled and easily explained with examples. If you're trying to contribute but stuck, tag @bee-san ✨

Alternatively, join the Discord group and send a message there (link in contrib file) or at the top of this README as a badge.

Please read the contributing file for exact details on how to contribute ✨

By doing so, you'll get your name added to the README below and get to be apart of an ever-growing project! Stargazers over time

💰 Financial Contributors

The contributions will be used to fund not only the future of Ciphey and its authors, but also Cyber Security Society at the University of Liverpool.

GitHub doesn't support "sponsor this project and we'll evenly distribute the money", so pick a link and we'll sort it out on our end 🥰

✨ Contributors

Thanks goes to these wonderful people (emoji key):


cyclic3

🎨 🚧 💻 🤔

Brandon

🎨 🚧 💻 🤔

michalani

💻

ashb07

💻

Shardion

🐛

Bryan

🌍 📖

Lukas Gabriel

💻 🐛 🌍 🤔

Darshan

🐛

SkeletalDemise

💻

Christian Clauss

💻 🐛

Machinexa2

🖋

Anant Verma

💻 🐛

XVXTOR

📖

Itamikame

💻

MikeMerz

💻

Jacob Galam

💻 🐛

TuxTheXplorer

🌍

Itamai

💻 🐛

Filipe

🌍

Malathi

💻

Jack

🌍

Younes

🌍

Marnick Vandecauter

🌍

Michael V

💻

chuinzer

🌍

blackcat-917

🌍 📖

Åsmund Brekke

💻

Sashreek Shankar

💻

cryptobadger

💻 🐛

elf

💻

Roger Yu

💻

dysleixa

💻

Mohammad Zulfikar

📖

Alexander Burchenko

🌍

This project follows the all-contributors specification. Contributions of any kind welcome!

ciphey's People

Contributors

aabur avatar allcontributors[bot] avatar ashwinibhandari avatar bee-san avatar brignano avatar bryzizzle avatar cclauss avatar chuinzer avatar cyclic3 avatar dependabot-preview[bot] avatar dependabot[bot] avatar hexchaos avatar imba-tjd avatar imgbotapp avatar jacobggman avatar lukasgabriel avatar maanisim avatar malathit avatar marnick39 avatar mav8557 avatar mikemerz avatar ozzyz avatar polponline avatar pungrumpy avatar renovate-bot avatar rogercyyu avatar sashreek1 avatar skeletaldemise avatar swanandx avatar yafkari avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ciphey's Issues

Install from PIP error

Traceback (most recent call last):
File ".virtualenvs/huginn/bin/ciphey", line 5, in
from app.main import main
ModuleNotFoundError: No module named 'app'

I think this is caused by setup.py

Rewrite

For hash busting: hash buster
for

Rework of language checker

  • - Use Lemmisation to reduce dictionary checker size
  • - Use Lemminisation in the text to check to increase accuracy
  • - For check 1000 words, it may be better to search for stop words or word endings (opposite of leminisation)
  • - Explore removing std checking from Chi square as it returns True for encrypted text
  • - write tests for check100words

Rework of Neural Network

  • - Larger text corpus. Explore using English Wikipedia, Reddit comments, British National Corpus of Quantum Stat datasets
  • - Build the text corpus into an actual data set hosted on Kaggle or the likes.
  • - Change what Ciphey's NN trains on. Add in these:
    • - "=" since basees use it, it'll help Ciphey identify bases easier.
    • - Spaces, since some encryption methods do not use spaces.
    • - Puncuation, as some encryptions use puncuation
    • - Length of text
    • - Range of letters / numbers
  • - Explore using FOREST instead of a DNN.
  • Use manual REGEX to check some things for encodings

More decryption modules such as BASE32 needed

Ciphey is in need of more decryption modules. Check out the README to learn how to add a decryption module.

In particular, we're looking to get more BASE encodings such as:

  • Decode from Base32
  • Decode from Base58
  • Decode from Base62
  • Decode from base85

But if you have any ideas for other decryptions / encodings, they will also be welcomed!

The bottom of the README details exactly how to contribute.
https://github.com/brandonskerritt/Ciphey/blob/master/README.MD

We currently have these decryptions (this might help you come up with more if you'd like!)

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

Take control of crtl + c

Ciphey should print out the prob table and some extra info if people cancel the program halfway through running

Update the Neural Network

The neural network is great at identifying sub classes (base64, caesar cipher, etc) but not so great at identifying parent classes.

Read the docs :)

When I run the "pip install -r requirements.txt"

I may just not be intelligible enough with command line to run this, but I really want to try it out. When I run the "pip install -r requirements.txt" I get an exception and HTTPError.
"python main.py" does not work after this.

"
Exception: Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 353, in run wb.build(autobuilding=True)
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 749, in build self.requirement_set.prepare_files(self.finder)
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 380, in prepare_files ignore_dependencies=self.ignore_dependencies))
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 554, in _prepare_file require_hashes File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 278, in populate_link self.link = finder.find_requirement(self, upgrade)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 465, in find_requirement all_candidates = self.find_all_candidates(req.name)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 423, in find_all_candidates for page in self._get_pages(url_locations, project_name):
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 568, in _get_pages page = self._get_page(location)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 683, in _get_page return HTMLPage.get_page(link, session=self.session)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 795, in get_page resp.raise_for_status() File "/usr/share/python-wheels/requests-2.18.4-py2.py3-none-any.whl/requests/models.py", line 935, in raise_for_status raise
HTTPError(http_error_msg, response=self) HTTPError: 404 Client Error: Not Found for url: https://pypi.org/simple/cloud-init/

"
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.