JCrypTool — The cryptography e-learning platform
JCrypTool enables students, teachers, developers, and anyone else interested in cryptography to apply and analyze cryptographic algorithms in a modern, easy-to-use application. The JCT plaform creates a new way of e-learning by not just encouraging users to learn about cryptography and apply the algorithms themselves, but also to develop their own cryptographic plug-ins and extend the JCrypTool platform in new directions.
JCrypTool reached the stable version 1.0.0 in November 2020. Most of its functionality is implemented in over 100 different plugins.
JCrypTool already includes a wealth of cryptographic mechanisms including classic, symmetric, and asymmetric encryption, hash functions, analysis tools, visualizations and crypto games.
Visit the JCrypTool Core Project on GitHub for the source code (available via Git), developer documentation, wiki and further information about the project. For our cryptographic plug-ins visit the JCrypTool Crypto Project. Our wiki is a good place for new developers to get started and to find additional information, such as our release schedule and a huge list of project ideas.
The JCrypTool installation is very simple: download and extract the zip-archive, launch the main program and get started. Admin rights are not required – neither for the installation nor for subsequent usage. A Java installation is also not required.
Download the zip (Windows) or tar.gz archive (Linux and macOS) for your platform with x64 architecture and extract it into a folder (e.g. C:\Program Files on Windows, /Applications on macOS), your user directory on Linux). Double click the main program (JCrypTool.exe on Windows, JCrypTool on macOS) to start the program.
JCrypTool is not signed for macOS, therefore the first start is a little bit different. After extracting JCrypTool switch into the extracted directory and run
sudo xattr -r -d com.apple.quarantine ./jcryptool.app
in the terminal. This is only required once. Without this command the JCT will not start. After this run it as usual by double clicking the main porgram. This signatur will be added in the release version.
All operating systems:
After the first start, the welcome page will show up. New users should read this short information; it presents some JCrypTool concepts and will make your first steps much easier.
Need help? Do you have trouble with the installation or your first steps? Discovered a bug or a problem? Feel free to ask a question in the JCrypTool Issue Tracker.
What is JCrypTool?
JCrypTool is an open-source e-learning platform, developed to not only let everybody experiment with cryptography, but to develop and extend the JCrypTool platform in various ways with their own crypto plug-ins.
JCrypTool is an extensive open-source development project, separated into two parts: JCrypTool Core and JCrypTool Crypto.
The JCrypTool Core Project takes care of the JCrypTool platform itself. This contains the bare runtime, editors, crypto providers as well as core functionality like the Crypto Explorer view or the Actions view. About half a dozen experienced team members are working on the core project. Constant communication with the members of the crypto project is our most important job, e.g. to integrate new extensions for crypto plug-ins in the platform or the develop new extension points.
The JCrypTool Crypto Project is open to everybody. It has an active community and its aim is to develop new crypto plug-ins (algorithms, analysis, games, visualizations) and integrate them into the JCrypTool project. The plug-in projects team members’ change frequently; not everybody stays in the team after finishing a plug-in (although everybody is very welcome to do so).
JCrypTool is bundled with the advanced cryptographic libraries BouncyCastle and FlexiProvider; other libraries can be easily added to the project. FlexiProvider is the initial default provider, but users can freely change to a different default provider. A fall-through functionality searches top-down for an implementation of any given cryptographic algorithm so that even a specialized provider with only a small subset of algorithms can be selected as the default.