Abstract. This paper describes CryptoToolJ (Cryptology Tool -- Java), an extensible Java-based software program for implementing and analyzing historical ciphers. CryptoToolJ is designed to support computer-based research and teaching in historical cryptography. It contains default im- plementations of a number of historical cipher engines. It also incorporates several easy-to-use cryptanalysis programs, thus providing an integrated software platform for historical cryptologists. What distinguishes Crypto- ToolJ from similar tools is its generality and extensibility. Because of its open, object-oriented design, new cipher engines and programmer-defined analyzers can be easily incorporated into the program. The software, in- cluding source code and documentation, is available for free download. It is hoped that as others utilize this tool, they will contribute to its further development.