包详细信息

cyberchef

gchq4.8kApache-2.010.19.4

The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.

cipher, cypher, encode, decode

自述文件

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.

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!

Containers

If you would like to try out CyberChef locally you can either build it yourself:

docker build --tag cyberchef --ulimit nofile=10000 .
docker run -it -p 8080:80 cyberchef

Or you can use our image directly:

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

This image is built and published through our GitHub Workflows

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 that 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 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

  • Google Chrome 50+
  • Mozilla Firefox 38+

Node.js support

CyberChef is built to fully support Node.js v16. For more information, see the "Node API" wiki page

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.

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

更新日志

Changelog

Versioning

CyberChef uses the semver system to manage versioning: <MAJOR>.<MINOR>.<PATCH>.

  • MAJOR version changes represent a significant change to the fundamental architecture of CyberChef and may (but don't always) make breaking changes that are not backwards compatible.
  • MINOR version changes usually mean the addition of new operations or reasonably significant new features.
  • PATCH versions are used for bug fixes and any other small tweaks that modify or improve existing capabilities.

All major and minor version changes will be documented in this file. Details of patch-level version changes can be found in commit messages.

Details

10.19.0 - 2024-06-21

  • Add support for ECDSA and DSA in 'Parse CSR' @robinsandhu | [#1828]
  • Fix typos in SIGABA.mjs @eltociear | [#1834]

10.18.0 - 2024-04-24

10.17.0 - 2024-04-13

  • Fix unit test 'expectOutput' implementation @zb3 | [#1783]
  • Add accessibility labels for icons @e218736 | [#1743]
  • Add focus styling for keyboard navigation @e218736 | [#1739]
  • Add support for operation option hiding @TheZ3ro | [#541]
  • Improve efficiency of RAKE implementation @sw5678 | [#1751]
  • Require (a, 26) to be coprime in 'Affine Encode' @EvieHarv | [#1788]
  • Added 'JWK to PEM' operation @cplussharp | [#1277]
  • Added 'PEM to JWK' operation @cplussharp | [#1277]
  • Added 'Public Key from Certificate' operation @cplussharp | [#1642]
  • Added 'Public Key from Private Key' operation @cplussharp | [#1642]

10.16.0 - 2024-04-12

10.15.0 - 2024-04-02

10.14.0 - 2024-03-31

10.13.0 - 2024-03-30

10.12.0 - 2024-03-29

10.11.0 - 2024-03-29

10.10.0 - 2024-03-27

10.9.0 - 2024-03-26

  • Line ending sequences and UTF-8 character encoding are now detected automatically @n1474335 | 65ffd8d

10.8.0 - 2024-02-13

10.7.0 - 2024-02-09

10.6.0 - 2024-02-03

10.5.0 - 2023-07-14

  • Added GOST Encrypt, Decrypt, Sign, Verify, Key Wrap, and Key Unwrap operations @n1474335 | #592

10.4.0 - 2023-03-24

10.3.0 - 2023-03-24

  • Added 'Argon2' and 'Argon2 compare' operations @Xenonym | #661

10.2.0 - 2023-03-23

10.1.0 - 2023-03-23

10.0.0 - 2023-03-22

<summary>Click to expand v9 minor versions</summary> ### 9.55.0 - 2022-12-09 - Added 'AMF Encode' and 'AMF Decode' operations @n1474335 | 760eff4 ### 9.54.0 - 2022-11-25 - Added 'Rabbit' operation @mikecat | #1450 ### 9.53.0 - 2022-11-25 - Added 'AES Key Wrap' and 'AES Key Unwrap' operations @mikecat | #1456 ### 9.52.0 - 2022-11-25 - Added 'ChaCha' operation @joostrijneveld | #1466 ### 9.51.0 - 2022-11-25 - Added 'CMAC' operation @mikecat | #1457 ### 9.50.0 - 2022-11-25 - Added 'Shuffle' operation @mikecat | #1472 ### 9.49.0 - 2022-11-11 - Added 'LZ4 Compress' and 'LZ4 Decompress' operations @n1474335 | 31a7f83 ### 9.48.0 - 2022-10-14 - Added 'LM Hash' and 'NT Hash' operations @n1474335 | #1427 ### 9.47.0 - 2022-10-14 - Added 'LZMA Decompress' and 'LZMA Compress' operations @mattnotmitt | #1421 ### 9.46.0 - 2022-07-08 - Added 'Cetacean Cipher Encode' and 'Cetacean Cipher Decode' operations @valdelaseras | #1308 ### 9.45.0 - 2022-07-08 - Added 'ROT8000' operation @thomasleplus | #1250 ### 9.44.0 - 2022-07-08 - Added 'LZString Compress' and 'LZString Decompress' operations @crespyl | #1266 ### 9.43.0 - 2022-07-08 - Added 'ROT13 Brute Force' and 'ROT47 Brute Force' operations @mikecat | #1264 ### 9.42.0 - 2022-07-08 - Added 'LS47 Encrypt' and 'LS47 Decrypt' operations @n1073645 | #951 ### 9.41.0 - 2022-07-08 - Added 'Caesar Box Cipher' operation @n1073645 | #1066 ### 9.40.0 - 2022-07-08 - Added 'P-list Viewer' operation @n1073645 | #906 ### 9.39.0 - 2022-06-09 - Added 'ELF Info' operation @n1073645 | #1364 ### 9.38.0 - 2022-05-30 - Added 'Parse TCP' operation @n1474335 | a895d1d ### 9.37.0 - 2022-03-29 - 'SM4 Encrypt' and 'SM4 Decrypt' operations added @swesven | #1189 - NoPadding options added for CBC and ECB modes in AES, DES and Triple DES Decrypt operations @swesven | #1189 ### 9.36.0 - 2022-03-29 - 'SIGABA' operation added @hettysymes | #934 ### 9.35.0 - 2022-03-28 - 'To Base45' and 'From Base45' operations added @t-8ch | #1242 ### 9.34.0 - 2022-03-28 - 'Get All Casings' operation added @n1073645 | #1065 ### 9.33.0 - 2022-03-25 - Updated to support Node 17 @n1474335 @t-8ch | [#1326 #1244 - Improved CJS and ESM module support @d98762625 | #1037 ### 9.32.0 - 2021-08-18 - 'Protobuf Encode' operation added and decode operation modified to allow decoding with full and partial schemas @n1474335 | dd18e52 ### 9.31.0 - 2021-08-10 - 'HASSH Client Fingerprint' and 'HASSH Server Fingerprint' operations added @n1474335 | e9ca4dc ### 9.30.0 - 2021-08-10 - 'JA3S Fingerprint' operation added @n1474335 | 289a417 ### 9.29.0 - 2021-07-28 - 'JA3 Fingerprint' operation added @n1474335 | 9a33498 ### 9.28.0 - 2021-03-26 - 'CBOR Encode' and 'CBOR Decode' operations added @Danh4 | #999 ### 9.27.0 - 2021-02-12 - 'Fuzzy Match' operation added @n1474335 | 8ad18b ### 9.26.0 - 2021-02-11 - 'Get Time' operation added @n1073645 | #1045 ### 9.25.0 - 2021-02-11 - 'Extract ID3' operation added @n1073645 | #1006 ### 9.24.0 - 2021-02-02 - 'SM3' hashing function added along with more configuration options for other hashing operations @n1073645 | #1022 ### 9.23.0 - 2021-02-01 - Various RSA operations added to encrypt, decrypt, sign, verify and generate keys @mattnotmitt | #652 ### 9.22.0 - 2021-02-01 - 'Unicode Text Format' operation added @mattnotmitt | #1083 ### 9.21.0 - 2020-06-12 - Node API now exports magic operation @d98762625 | #1049 ### 9.20.0 - 2020-03-27 - 'Parse ObjectID Timestamp' operation added @dmfj | #987 ### 9.19.0 - 2020-03-24 - Improvements to the 'Magic' operation, allowing it to recognise more data formats and provide more accurate results @n1073645 | [#966] b765534b ### 9.18.0 - 2020-03-13 - 'Convert to NATO alphabet' operation added @MarvinJWendt | #674 ### 9.17.0 - 2020-03-13 - 'Generate Image' operation added @pointhi | #683 ### 9.16.0 - 2020-03-06 - 'Colossus' operation added @VirtualColossus | #917 ### 9.15.0 - 2020-03-05 - 'CipherSaber2 Encrypt' and 'CipherSaber2 Decrypt' operations added @n1073645 | #952 ### 9.14.0 - 2020-03-05 - 'Luhn Checksum' operation added @n1073645 | #965 ### 9.13.0 - 2020-02-13 - 'Rail Fence Cipher Encode' and 'Rail Fence Cipher Decode' operations added @Flavsditz | #948 ### 9.12.0 - 2019-12-20 - 'Normalise Unicode' operation added @matthieuxyz | #912 ### 9.11.0 - 2019-11-06 - Implemented CFB, OFB, and CTR modes for Blowfish operations @cbeuw | #653 ### 9.10.0 - 2019-11-06 - 'Lorenz' operation added @VirtualColossus | #528 ### 9.9.0 - 2019-11-01 - Added support for 109 more character encodings @n1474335 ### 9.8.0 - 2019-10-31 - 'Avro to JSON' operation added @jarrodconnolly | #865 ### 9.7.0 - 2019-09-13 - 'Optical Character Recognition' operation added @MShwed | #632 ### 9.6.0 - 2019-09-04 - 'Bacon Cipher Encode' and 'Bacon Cipher Decode' operations added @kassi | #500 ### 9.5.0 - 2019-09-04 - Various Steganography operations added: 'Extract LSB', 'Extract RGBA', 'Randomize Colour Palette', and 'View Bit Plane' @Ge0rg3 | #625 ### 9.4.0 - 2019-08-30 - 'Render Markdown' operation added @j433866 | #627 ### 9.3.0 - 2019-08-30 - 'Show on map' operation added @j433866 | #477 ### 9.2.0 - 2019-08-23 - 'Parse UDP' operation added @h345983745 | #614 ### 9.1.0 - 2019-08-22 - 'Parse SSH Host Key' operation added @j433866 | #595 - 'Defang IP Addresses' operation added @h345983745 | #556

9.0.0 - 2019-07-09

<summary>Click to expand v8 minor versions</summary> ### 8.38.0 - 2019-07-03 - 'Streebog' and 'GOST hash' operations added @MShwed | #530 ### 8.37.0 - 2019-07-03 - 'CRC-8 Checksum' operation added @MShwed | #591 ### 8.36.0 - 2019-07-03 - 'PGP Verify' operation added @artemisbot | #585 ### 8.35.0 - 2019-07-03 - 'Sharpen Image', 'Convert Image Format' and 'Add Text To Image' operations added @j433866 | #515 ### 8.34.0 - 2019-06-28 - Various new visualisations added to the 'Entropy' operation @MShwed | #535 - Efficiency improvements made to the 'Entropy' operation for large file support @n1474335 ### 8.33.0 - 2019-06-27 - 'Bzip2 Compress' operation added and 'Bzip2 Decompress' operation greatly improved @artemisbot | #531 ### 8.32.0 - 2019-06-27 - 'Index of Coincidence' operation added @Ge0rg3 | #571 ### 8.31.0 - 2019-04-12 - The downloadable version of CyberChef is now a .zip file containing separate modules rather than a single .htm file. It is still completely standalone and will not make any external network requests. This change reduces the complexity of the build process significantly. @n1474335 ### 8.30.0 - 2019-04-12 - 'Decode Protobuf' operation added @n1474335 | #533 ### 8.29.0 - 2019-03-31 - 'BLAKE2s' and 'BLAKE2b' hashing operations added @h345983745 | #525 ### 8.28.0 - 2019-03-31 - 'Heatmap Chart', 'Hex Density Chart', 'Scatter Chart' and 'Series Chart' operation added @artemisbot | #496 ### 8.27.0 - 2019-03-14 - 'Enigma', 'Typex', 'Bombe' and 'Multiple Bombe' operations added @s2224834 | #516 - See this wiki article for a full explanation of these operations. - New Bombe-style loading animation added for long-running operations @n1474335 - New operation argument types added: populateMultiOption and argSelector @n1474335 ### 8.26.0 - 2019-03-09 - Various image manipulation operations added @j433866 | #506 ### 8.25.0 - 2019-03-09 - 'Extract Files' operation added and more file formats supported @n1474335 | #440 ### 8.24.0 - 2019-02-08 - 'DNS over HTTPS' operation added @h345983745 | #489 ### 8.23.1 - 2019-01-18 - 'Convert co-ordinate format' operation added @j433866 | #476 ### 8.23.0 - 2019-01-18 - 'YARA Rules' operation added @artemisbot | #468 ### 8.22.0 - 2019-01-10 - 'Subsection' operation added @j433866 | #467 ### 8.21.0 - 2019-01-10 - 'To Case Insensitive Regex' and 'From Case Insensitive Regex' operations added @masq | #461 ### 8.20.0 - 2019-01-09 - 'Generate Lorem Ipsum' operation added @klaxon1 | #455 ### 8.19.0 - 2018-12-30 - UI test suite added to confirm that the app loads correctly in a reasonable time and that various operations from each module can be run @n1474335 | #458 ### 8.18.0 - 2018-12-26 - 'Split Colour Channels' operation added @artemisbot | #449 ### 8.17.0 - 2018-12-25 - 'Generate QR Code' and 'Parse QR Code' operations added @j433866 | #448 ### 8.16.0 - 2018-12-19 - 'Play Media' operation added @anthony-arnold | #446 ### 8.15.0 - 2018-12-18 - 'Text Encoding Brute Force' operation added @Cynser | #439 ### 8.14.0 - 2018-12-18 - 'To Base62' and 'From Base62' operations added @tcode2k16 | #443 ### 8.13.0 - 2018-12-15 - 'A1Z26 Cipher Encode' and 'A1Z26 Cipher Decode' operations added @jarmovanlenthe | #441 ### 8.12.0 - 2018-11-21 - 'Citrix CTX1 Encode' and 'Citrix CTX1 Decode' operations added @bwhitn | #428 ### 8.11.0 - 2018-11-13 - 'CSV to JSON' and 'JSON to CSV' operations added @n1474335 | #277 ### 8.10.0 - 2018-11-07 - 'Remove Diacritics' operation added @klaxon1 | #387 ### 8.9.0 - 2018-11-07 - 'Defang URL' operation added @arnydo | #394 ### 8.8.0 - 2018-10-10 - 'Parse TLV' operation added @GCHQ77703 | #351 ### 8.7.0 - 2018-08-31 - 'JWT Sign', 'JWT Verify' and 'JWT Decode' operations added @GCHQ77703 | #348 ### 8.6.0 - 2018-08-29 - 'To Geohash' and 'From Geohash' operations added @GCHQ77703 | #344 ### 8.5.0 - 2018-08-23 - 'To Braille' and 'From Braille' operations added @n1474335 | #255 ### 8.4.0 - 2018-08-23 - 'To Base85' and 'From Base85' operations added @PenguinGeorge | #340 ### 8.3.0 - 2018-08-21 - 'To MessagePack' and 'From MessagePack' operations added @artemisbot | #338 ### 8.2.0 - 2018-08-21 - Information links added to most operations, accessible in the description popover @PenguinGeorge | #298 ### 8.1.0 - 2018-08-19 - 'Dechunk HTTP response' operation added @sevzero | #311

8.0.0 - 2018-08-05

7.0.0 - 2017-12-28

  • Added support for loading, processing and downloading files up to 500MB @n1474335 | #224

6.0.0 - 2017-09-19

  • Threading support added. All recipe processing moved into a Web Worker to increase performance and to allow long-running operations to be cancelled @n1474335 | #173
  • Module system created so that operations relying on large libraries can be downloaded separately as required, reducing the initial loading time for the app @n1474335 | #173

5.0.0 - 2017-03-30

  • Webpack build process configured with Babel transpilation and ES6 imports and exports @n1474335 | #95

4.0.0 - 2016-11-28