aca is Another Checksum Application
aca is a simple GUI application designed for the purpose of generating MD5 checksums, copying files, and verifying their integrity within a unified process. aca can generate and verify MD5 checksums as individual processes or by simply hitting the "Copy" button, generate, copy and verify files all in one go!
The aim of the project is to provide a "one-click" solution for users to securely back-up their digital files with minimal friction or technical know-how.
Note, I started this project to learn Python and I know there are many areas the code can be improved - if do take a look at the code, please be nice!
aca is written in Python 3.9.x and the UI created in wxPython 4.2.0, it was initally built and tested for macOS Somona 14.2.
It requires the following additional Python libraries:
An executable app is available to download in the Release section, otherwise the app can be compiled with Pyinstaller:
pyinstaller --onefile --windowed --collect-submodules filehashingservice.py --icon aca_icon.icns --name "aca" aca.py
Checksums files are generated on per file basis and written to a .md5 file containing the 32-bit hexadecimal hash string and the filename:
122b179147f3a72134877283a9aa8f5d *filename.mp4
.md5 checksum file |
Click the "Select Source Files" button to open the directory of files you want to process.
The directory path will be listed in the source dialog.
The source files will be listed in the "FILE" column of the main table and any with exisiting .md5 files associated with them will be listed alongside, in the "CHECKSUM" column. If no checksum file is present the cell will show "/".
Files without checksums |
If the file status in the source location changes for any reason (files added, removed etc.) click the "↻" button to refresh the source files in the file list.
Manually select individual files in the list or click the "Select All" to select the entire range. Click "Clear Selected" button to clear any selected files.
From here you have the option to generate new file checksums by clicking the "Generate ↓" button and where associated .md5 files already exist, verify the existing checksums by clicking the "Verify ↑" button.
If you intend to back-up the files to a new location, click the "Select Destination" button and select a directory. The directory path will be listed in the destination dialog.
Clicking the "Copy →" button, will generate the checksums, copy the files from their source directory to the destination directory and verify the file checksums at the destination.
The central file list, will apply any newly generated checksum hashes to the "CHECKSUM" column.
Generated checksums |
Each row in the file list also has a status indicator for each file process:
Generate | Copy | Verify |
---|---|---|
↓ | → | ↑ |
For each process there is a Pass, Fail and Skip status:
Pass | Fail | Skip |
---|---|---|
○ | X | - |
Pass status for generate, copy, verify |
Skip and Fail status |
Currently aca does not regenerate existing checksums or overwrite duplicate files in a destination directory when copying, in these circumstances the file operation will be skipped and the user notified in the relevant status column, Report page stat and log.
On completion the Report page to will display an overview of the file operations, including the number of files passed, failed or skipped, for each process, and list any failed files in the right hand table.
Report page |
The failed file list can be copied to the clipbaord by clicking the "Copy to Clipboard" button and the full log accessed for more details by clicking the "View Full Log" button.
Log files are stored in ~/user/Documents/aca/logs. A log file will be written each time the application is opened.
another checksum application (aca)© 2023 by Thomas Luke Ruane is licensed under CC BY 4.0
This software is provided "as is", without warrany or liability. The author takes no responsbility for any system meltdowns or other misfortune that might occur from using this software (though I'm sure it'll be fine).