A Java Swing desktop application that allows users to generate the unique hash value of any file on their machine. It supports multiple hashing algorithms and provides a clean GUI for easy use, complete with error handling and informative warnings.
- π Overview
- β¨ Features
- π Getting Started
- β‘ Usage
- πΈ Screenshots
- π οΈ Class Structure
- πΊοΈ Roadmap
- π€ Contributing
- π License
Hashing algorithms calculate a fixed-size hexadecimal representation of file contents. This application lets you:
- Select from a variety of hash algorithms (MD2, MD5, SHA-1, SHA-224, SHA-256, SHA-348, SHA-512)
- Compute the unique hash value of any file
- Compare results by switching algorithms
- Get detailed error messages for invalid inputs
- Multiple Algorithms β Supports MD2, MD5, SHA-1, SHA-224, SHA-256, SHA-348, and SHA-512
- Cross-File Compatibility β Works with any file type
- Error & Warning Handling β Explains reasons for failed computations
- Lightweight & Portable β Execute with a simple JAR; no heavy setup required
- User-Friendly Interface β Built with Java Swing
- Java JDK 8+
- Apache NetBeans 11.2 (recommended) or another Java IDE
git clone https://github.com/tmfontan/FileHashValueGenerator.gitNote: This application was designed and tested using Apache NetBeans 11.2.
- Launch the application.
- Select a file from your system.
- Choose the desired hashing algorithm.
- Click Compute Hash.
- View the resulting hash value in the display area.
Below are screenshots showcasing the toolβs interface and functionality:
The application is composed of the following classes:
- GUI β Creates the main window, file chooser, hash result display, and user controls.
- HashCalculator β Implements different hashing algorithms using
MessageDigest. - WarningMessageFrame β Displays pop-ups for missing file selection or invalid operations.
- ErrorMessageFrame β Handles computation errors with clear messages.
- ResultHandler β Manages and formats output for the GUI.
Planned enhancements and future improvements:
- Add support for additional algorithms (e.g., Blake2, SHA-3)
- Implement drag-and-drop file selection
- Provide batch hashing for multiple files
- Add export functionality to save hash values
- Include unit tests for better reliability
Contributions are welcome! To get started:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name. - Make your changes and commit:
git commit -m \"Add feature\". - Push to your branch:
git push origin feature-name. - Submit a pull request.
Please ensure your contributions align with the projectβs coding standards and include updates to documentation where necessary.
This project is licensed under the MIT License.














