All Projects → gchq → Cyberchef

gchq / Cyberchef

Licence: apache-2.0
The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to Cyberchef

DAR
DAR - Disk ARchive
Stars: ✭ 58 (-99.58%)
Mutual labels:  hashing, compression, encryption
Peazip
Free Zip / Unzip software and Rar file extractor. Cross-platform file and archive manager. Features volume spanning, compression, authenticated encryption. Supports 7Z, 7-Zip sfx, ACE, ARJ, Brotli, BZ2, CAB, CHM, CPIO, DEB, GZ, ISO, JAR, LHA/LZH, NSIS, OOo, PAQ/LPAQ, PEA, QUAD, RAR, RPM, split, TAR, Z, ZIP, ZIPX, Zstandard.
Stars: ✭ 827 (-93.95%)
Mutual labels:  encryption, compression
Minizip Ng
Fork of the popular zip manipulation library found in the zlib distribution.
Stars: ✭ 750 (-94.52%)
Mutual labels:  encryption, compression
Cryptii
Web app and framework offering modular conversion, encoding and encryption
Stars: ✭ 971 (-92.9%)
Mutual labels:  encoding, encryption
Csv
CSV Decoding and Encoding for Elixir
Stars: ✭ 398 (-97.09%)
Mutual labels:  encoding, parsing
Secure Ls
🔒 Secure localStorage data with high level of encryption and data compression
Stars: ✭ 486 (-96.45%)
Mutual labels:  encoding, encryption
Bcnencoder.net
Cross-platform texture encoding libary for .NET. With support for BC1-3/DXT, BC4-5/RGTC and BC7/BPTC compression. Outputs files in ktx or dds formats.
Stars: ✭ 28 (-99.8%)
Mutual labels:  encoding, compression
Crypto
封装多种CTF和平时常见加密及编码C#类库
Stars: ✭ 20 (-99.85%)
Mutual labels:  encoding, encryption
Node Argon2
Node.js bindings for Argon2 hashing algorithm
Stars: ✭ 1,008 (-92.63%)
Mutual labels:  hashing, encryption
Lazysodium Android
An Android implementation of the Libsodium cryptography library. For the lazy dev.
Stars: ✭ 69 (-99.5%)
Mutual labels:  hashing, encryption
Webcrypto
W3C Web Cryptography API for Node.js
Stars: ✭ 79 (-99.42%)
Mutual labels:  hashing, encryption
Libzip
A C library for reading, creating, and modifying zip archives.
Stars: ✭ 379 (-97.23%)
Mutual labels:  encryption, compression
Serpent
A protocol to serialize Swift structs and classes for encoding and decoding.
Stars: ✭ 281 (-97.95%)
Mutual labels:  encoding, parsing
Turbopfor Integer Compression
Fastest Integer Compression
Stars: ✭ 520 (-96.2%)
Mutual labels:  encoding, compression
Rocketjob
Ruby's missing background and batch processing system
Stars: ✭ 258 (-98.11%)
Mutual labels:  encryption, compression
Nippy
High-performance serialization library for Clojure
Stars: ✭ 838 (-93.87%)
Mutual labels:  encryption, compression
Libbrotli
meta project to build libraries from the brotli source code
Stars: ✭ 110 (-99.2%)
Mutual labels:  encoding, compression
pakkero
Pakkero is a binary packer written in Go made for fun and educational purpose. Its main goal is to take in input a program file (elf binary, script, even appimage) and compress it, protect it from tampering and intrusion.
Stars: ✭ 143 (-98.95%)
Mutual labels:  compression, encryption
Iocane
An odorless, tasteless NodeJS crypto library that dissolves instantly in liquid
Stars: ✭ 35 (-99.74%)
Mutual labels:  encoding, encryption
Easycrypt
Android cryptography library with SecureRandom patches.
Stars: ✭ 102 (-99.25%)
Mutual labels:  hashing, encryption

CyberChef

Language grade: JavaScript dependencies Status npm Gitter

The Cyber Swiss Army Knife

CyberChef is a simple, intuitive web app for carrying out all manner of "cyber" operations within a web browser. These operations include simple encoding like XOR or Base64, more complex encryption like AES, DES and Blowfish, creating binary and hexdumps, compression and decompression of data, calculating hashes and checksums, IPv6 and X.509 parsing, changing character encodings, and much more.

The tool is designed to enable both technical and non-technical analysts to manipulate data in complex ways without having to deal with complex tools or algorithms. It was conceived, designed, built and incrementally improved by an analyst in their 10% innovation time over several years.

Live demo

CyberChef is still under active development. As a result, it shouldn't be considered a finished product. There is still testing and bug fixing to do, new features to be added and additional documentation to write. Please contribute!

Cryptographic operations in CyberChef should not be relied upon to provide security in any situation. No guarantee is offered for their correctness.

A live demo can be found here - have fun!

How it works

There are four main areas in CyberChef:

  1. The input box in the top right, where you can paste, type or drag the text or file you want to operate on.
  2. The output box in the bottom right, where the outcome of your processing will be displayed.
  3. The operations list on the far left, where you can find all the operations that CyberChef is capable of in categorised lists, or by searching.
  4. The recipe area in the middle, where you can drag the operations that you want to use and specify arguments and options.

You can use as many operations as you like in simple or complex ways. Some examples are as follows:

Features

  • Drag and drop
    • Operations can be dragged in and out of the recipe list, or reorganised.
    • Files up to 2GB can be dragged over the input box to load them directly into the browser.
  • Auto Bake
    • Whenever you modify the input or the recipe, CyberChef will automatically "bake" for you and produce the output immediately.
    • This can be turned off and operated manually if it is affecting performance (if the input is very large, for instance).
  • Automated encoding detection
    • CyberChef uses a number of techniques to attempt to automatically detect which encodings your data is under. If it finds a suitable operation which can make sense of your data, it displays the 'magic' icon in the Output field which you can click to decode your data.
  • Breakpoints
    • You can set breakpoints on any operation in your recipe to pause execution before running it.
    • You can also step through the recipe one operation at a time to see what the data looks like at each stage.
  • Save and load recipes
    • If you come up with an awesome recipe that you know you’ll want to use again, just click "Save recipe" and add it to your local storage. It'll be waiting for you next time you visit CyberChef.
    • You can also copy the URL, which includes your recipe and input, to easily share it with others.
  • Search
    • If you know the name of the operation you want or a word associated with it, start typing it into the search field and any matching operations will immediately be shown.
  • Highlighting
  • Save to file and load from file
    • You can save the output to a file at any time or load a file by dragging and dropping it into the input field. Files up to around 2GB are supported (depending on your browser), however some operations may take a very long time to run over this much data.
  • CyberChef is entirely client-side
    • It should be noted that none of your recipe configuration or input (either text or files) is ever sent to the CyberChef web server - all processing is carried out within your browser, on your own computer.
    • Due to this feature, CyberChef can be downloaded and run locally. You can use the link in the top left corner of the app to download a full copy of CyberChef and drop it into a virtual machine, share it with other people, or host it in a closed network.

Deep linking

By manipulation of CyberChef's URL hash, you can change the initial settings with which the page opens. The format is https://gchq.github.io/CyberChef/#recipe=Operation()&input=...

Supported arguments are recipe, input (encoded in Base64), and theme.

Browser support

CyberChef is built to support

  • Google Chrome 50+
  • Mozilla Firefox 38+

Node.js support

CyberChef is built to fully support Node.js v10 and partially supports v12. Named imports using a deep import specifier does not work in v12. For more information, see the Node API page in the project wiki pages

Contributing

Contributing a new operation to CyberChef is super easy! There is a quickstart script which will walk you through the process. If you can write basic JavaScript, you can write a CyberChef operation.

An installation walkthrough, how-to guides for adding new operations and themes, descriptions of the repository structure, available data types and coding conventions can all be found in the project wiki pages.

  • Push your changes to your fork.
  • Submit a pull request. If you are doing this for the first time, you will be prompted to sign the GCHQ Contributor Licence Agreement via the CLA assistant on the pull request. This will also ask whether you are happy for GCHQ to contact you about a token of thanks for your contribution, or about job opportunities at GCHQ.

Licencing

CyberChef is released under the Apache 2.0 Licence and is covered by Crown Copyright.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].