CyberChef README

The project's README from github.com/gchq/CyberChef. As one markdown file: README.md.

CyberChef

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 and 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.

Contents

Official website

CyberChef's official website can be found here - have fun!

Running Locally

You can run CyberChef with Docker (no toolchain required) or build it from source with Node.js.

With Docker

Prerequisites

Option 1: Build the Docker Image Yourself

  1. Build the docker image
docker build --tag cyberchef --ulimit nofile=10000 .
  1. Run the docker container
docker run -it -p 8080:8080 cyberchef
  1. Navigate to http://localhost:8080 in your browser

Option 2: Use the pre-built Docker Image

If you prefer to skip the build process, you can use the pre-built image

docker run -it -p 8080:8080 ghcr.io/gchq/cyberchef:latest

Just like before, navigate to http://localhost:8080 in your browser.

This image is built and published through our GitHub Workflows.

From source

If you want to develop CyberChef or run it without Docker, you can build it directly with Node.js.

Prerequisites

[!NOTE]

You can use nvm to manage Node.js versions and use the current development version in this project to avoid conflicts with other projects on your machine.

Setup

git clone https://github.com/gchq/CyberChef.git
cd CyberChef
npm install

Common tasks

Command Description
npm start Run the development server with live reload at http://localhost:8080.
npm run build Produce a production build in the build/prod directory.
npm test Run the Node.js and operation test suites.
npm run testui Run the browser (UI) tests.
npm run lint Check the code against the linting rules.
npm run newop Scaffold a new operation via the interactive quickstart script.

If you hit an out-of-memory error while building large recipes, increase Node's heap size with npm run setheapsize.

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

Deep linking

By manipulating 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

Node.js support

CyberChef is built to fully support Node.js v24 and is also tested against Node.js v26 ahead of it becoming the active LTS release. For more information, see the "Node API" wiki page

Security

Please see the CyberChef security policy.

Contributing

Contributing a new operation to CyberChef is super easy! The quickstart script 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 "Contributing" wiki page.

Licencing

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

CyberChef (gchq/CyberChef)

Searching Database…

36.1K ·GitHub
Что это такое?CyberChef — это веб-приложение, которое объединяет операции кодирования, шифрования, сжатия, хеширования и другого анализа данных (так называемые «cyber»-операции) в одном конструкторе рецептов с перетаскиванием. Всё работает полностью в вашем браузере.
Это сайт, которым можно пользоваться онлайн, или программу нужно установить?В первую очередь это веб-приложение, которое доступно на официальном сайте и сразу готово к работе. Но поскольку вся обработка происходит на стороне клиента, его также можно скачать и запустить на своём компьютере через Docker или собрать с помощью Node.js.
Как запустить это у себя на компьютере?Можно либо собрать образ Docker (или использовать готовый), запустить его и открыть в браузере, либо клонировать репозиторий и выполнить `npm start` для сервера разработки с автоматической перезагрузкой, или `npm run build` для сборки под продакшен.
Есть ли ограничения по размеру файлов или браузерам, о которых мне стоит знать?Можно загрузить файлы размером примерно до 2 ГБ, но очень большие входные данные могут замедлить некоторые операции. Официально приложение поддерживает Chrome 50+ и Firefox 38+.
Отправляются ли мои входные данные на сервер CyberChef?Нет. Вся обработка (выполнение рецепта) происходит локально в браузере: ваш рецепт, введённый текст и файлы никогда не покидают ваш компьютер.
Можно ли сохранить или поделиться рецептом, который я собрал?Да, рецепт можно сохранить в локальном хранилище, чтобы использовать его позже, или скопировать URL (в нём закодированы рецепт и входные данные), чтобы отправить точно такую же настройку другому человеку.
Что такое функция автоопределения «magic»?CyberChef пробует несколько методов, чтобы угадать, как закодированы ваши данные. Если он находит подходящую операцию, в выводе появляется значок волшебной палочки. По нему можно нажать, чтобы автоматически декодировать данные.
Зачем GCHQ создал это, если уже существовали инструменты для криптографии и кодирования?Проект начинался как личная разработка одного аналитика GCHQ в рамках его 10% времени на инновации. Его создали, чтобы и технические, и нетехнические аналитики могли работать с данными (кодирование, шифрование, сжатие, хеширование), не разбираясь с отдельными сложными инструментами.
Можно ли пошагово пройти рецепт, чтобы найти ошибку?Да, можно поставить точки останова на любой операции и проходить рецепт по одной операции за раз, чтобы проверять данные на каждом этапе.
Creator
gchq
Size
147.1 MB
Stars
36.1K
Age
9y
Commits · 90 Days