Library and CLI tool to detect SHA-1 cryptanalytic collision attacks in files, serving as a drop-in replacement for SHA-1 libraries.
sha1collisiondetection is a C library and command-line tool that detects SHA-1 cryptanalytic collision attacks in files. It solves the security problem where malicious actors create different files with the same SHA-1 hash to forge digital signatures or compromise data integrity, offering a protective layer against such exploits.
Security engineers, cryptography researchers, and developers working with SHA-1 hashing in applications like digital signatures, file verification, or forensic analysis who need to mitigate collision attack risks.
Developers choose this library because it provides a fast, drop-in replacement for SHA-1 libraries with built-in collision detection, enabling automatic protection against signature forgeries and data tampering without requiring extensive code changes.
Library and command line tool to detect SHA-1 collision in a file
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Detects collisions using the top 32 SHA-1 disturbance vectors with a false positive probability below 2^-90, as stated in the README, ensuring reliable identification of attacks like those from shattered.io.
In safe-hash mode, it returns a different unpredictable hash for colliding files, automatically protecting applications such as digital signatures without requiring code changes, per the README's explanation.
Runs very fast, taking less than twice the time of regular SHA-1 computations, making it practical for integration without significant slowdown, as highlighted in the project description.
Designed as a near drop-in replacement for common SHA-1 libraries and sha1sum, with minimal integration effort, including preprocessor macros for customization, as detailed in the README.
Limited to detecting SHA-1 collisions, offering no protection for other hash algorithms, which are increasingly preferred for security, making it less relevant for modern systems.
Requires compiling with make and C toolchains, which can be complex for non-C developers or environments without native build support, adding setup overhead.
The README provides basic usage but lacks extensive examples, tutorials, or error-handling guidance for complex integration scenarios, potentially increasing trial-and-error time.