Coder Social home page Coder Social logo

ciphertext's Introduction

#CipherText v2.4 Cipher and Decipher information, created using JavaFX.

With suitable and in good circumstances it is significant that the information you send and receive is protected. Cases such as sending someone your password or personal information - you wouldn't want someone to steal this information and use it against you right? CipherText allows you to encrypt and decrypt information using Symmetric-key algorithms; meaning that a key and the encrypted message is required to view your information. Depending on the encryption type and the key strength, your information wouldn't be worthwhile for hackers to obtain.

Requirements and Notes

The initial purpose of this project was to allow the user to cipher and decipher information. This Application 'CipherText' was created in JavaFX using 'IntelliJ IDEA', therefore when editing these files, you could use 'IntelliJ IDEA' to import the project folder or simply use your favorite text editor - the java files can be found in /src/. All code is open-source, but a reference to 'Milan Conhye' would be much appreciated. This program does not use the backbone of ciphering and deciphering, instead, uses the "javax.crypto" library to generate keys and securely encrypt and decrypt information. This program also includes a style sheet in order to further customize the program. All code in this program has been thoroughly commented in order to be understood and further extended.

It is recommended to install the "Java Cryptography Extension (JCE) unlimited strength jurisdiction policy files" - instructions can be found here. This would allow you to use the stronger security to encrypt and decrypt files. However, if you are unable to install this, an enabler of this extension has been provided within the main method of this program.

Basic Requirements: Any Desktop Operating System which has the support of JVM (Java Virtual Machine) and JDK (Java Development Kit) when editing these files.

General Knowledge

There are various encryption and decryption algorithms provided in this program. Each algorithm provides various key strengths in order to correctly cipher the required information. The table below introduces the minimum and maximum bit sizes for the key strengths. Although this program limits the bit size, due to the complexity and confusion to the user, the minimum and maximum bit strength, should you have to change the bit sizes, has been organized within the Encryption() method of the program and of course within this table.

Algorithm Type Allowances (bits)
AES 128, 192 or 256 exactly
BLOWFISH Between 32 - 448 in multiples of 8
DES 56 exactly
TRIPLEDES 112 or 168 exactly
RC2/RC4 Between 40 - 1024 exactly
DESEDE 122 or 168 exactly

Operation

Encrypt Text - Tab

As seen in Figure 1a, this 'CipherText' program features Choice boxes in order to choose the algorithm type and key strength, prevailing against any human error. The key strength sizes would depend on the chosen algorithm type and can vary between 56 and 1024 bits. An error prevention technique is also contained in the encryption process: 'Encrypt Message' text area cannot be null or empty.

Figure 1a - Encrypt Text

Encrypt Text - Tab

Encrypt Text - Output

Once the user has chosen their algorithm type, key strength, entered the message or text that needs to be encrypted and have pressed the cipher button, they will be promoted a dialog which contains the information: original message, algorithm type, key strength, decryption key and encrypted message. This dialog also contains an 'Export Info' feature, whereby two separate files will be created on the desktop; one of them containing the algorithm type and decryption key, and the other containing the encrypted message. Figure 1b displays the output of the encryption process.

Figure 1b - Encrypted Text Output

Encrypt Text - Output

Decrypt Text - Tab

As seen in Figure 2, the decryption process requires the algorithm type which was used to encrypt the information - this is a first step security procedure. The next step is entering the encryption key and encrypted message; if one of these hex keys are incorrect, then the program would display an error. However, if all fields are substantially correct and the decipher button has been pressed, there deciphered message would be displayed on the encrypted message text area.

Figure 2 - Decrypt Text

Decrypt Text - Tab

Errors, Bugs and Feedback

If you come across any of those nasty little things, would like to contribute some ideas towards this project or even if you need some guidance - please do leave a comment and I will try my best to respond as fast as possible.

Licence and Agreement

The software is provided "as is" and the author disclaims all warranties with regard to this software including all implied warranties of merchantability and fitness. This software in no way claims to fully protect the integrity of your information, instead it protects the naked information from the human eye and makes it harder for hackers to decrypt. In no event shall the author be liable for any special, direct, indirect, or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use or performance of this software. Please acknowledge and agree to this agreement before downloading and using this software.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

ciphertext's People

Contributors

milanzarathustra avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.