Secure File Crypt

Secure File Crypt is a small Java text editor which saves files using password-based encryption.



The focus of this project is on security, not on text editing.

The editor can open and save files, but no further text editing features are planned at the moment.

The text is encrypted using the Twofish cipher in EAX operation mode with a 256 bit long key. The key is generated from the user entered password using PBKDF2 with HMAC and SHA-1, currently using a 256 bit salt and 65536 iterations. The Bouncy Castle implementations are used for the cipher and the key generation.


  1. You need Java 8u40 or later. SecureFileCrypt does not work with earlier versions, so make sure you have at least Java 8 Update 40 installed. You can download Java here.
  2. In order to use the full power of Java’s cryptography features, you need to have the unlimited strength jurisdiction policy files installed as well.

    Because of the import restrictions on cryptography software in some countries, Oracle has restricted the capabilities of the cryptography features in the default Java distribution using jurisdiction policy files.

    The unlimited strength jurisdiction policy files contain no restrictions on Java’s capabilities.

    You can download them here as well. The download is called “Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files”.

    To install them, copy the two jar files contained in the zip folder to

    • <jdk-home>/jre/lib/security


    • <jre-home>/lib/security

    depending on whether you have the JDK or the JRE installed. Note, that you will have to replace the jar files which are already in these folders (which are the default jurisdiction policy files).

    Please refer to the README.txt file inside the unlimited strength jurisdiction policy files zip folder for more information.

Getting Started

SecureFileCrypt is a runnable jar file. Just download the latest release from GitHub.

Checking Out the Source Code

  1. Clone SecureFileCrypt
    Clone the repository on your computer.

  2. Set up the libraries
    All jar files in the lib folder must be on the classpath.

  3. Done!
    The main class is:


This project uses the Bouncy Castle Cryptography Provider for encryption.