As a software engineer eager to enhance my skills, I developed a Java program demonstrating file encryption and decryption. The primary goal is to showcase proficiency in Java language syntax and highlight key concepts related to cryptography, file I/O, and user interaction through a simple command-line interface.
The program allows users to encrypt and decrypt the contents of a file using the AES encryption algorithm with CBC mode and PKCS5 padding. The software employs standard Java libraries for cryptographic operations, demonstrating secure file handling techniques.
In the demonstration video, I provide a 4-5 minute walkthrough of the program's functionality. I emphasize key aspects of the Java language syntax utilized in the code. The focus is on understanding how cryptographic operations, file handling, and user interaction are implemented in Java.
The software was developed using the following tools:
- IDE: Visual Studio Code
- Programming Language: Java
- Libraries: Standard Java Cryptography Architecture (JCA)
During the development of this project, the following websites were valuable resources:
In future iterations, I plan to address the following:
- Improved User Interface: Enhance the command-line interface for a more user-friendly experience.
- Error Handling: Implement robust error handling to gracefully manage unexpected situations.
- Algorithm Flexibility: Allow users to choose different encryption algorithms and modes.
- Embed Algorithm Inencryptio Allow the algorithm to be part of the encrypted file so that the user can run and encrypt a file, and decrypt it after out side of the same run.