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.git
Note: 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.