Do not use SHA-1 unless you have to. SHA-1 is practically broken. Use a hash function from the SHA-2 or SHA-3 family instead.
-
Despite been proven that SHA-1 has collision attacks, SHA-1 is still extensively used, for example in websocket protocol.
-
For security related purposes one should use a combination of at least two hashes. For example in pseudocode:
- sha2(sha1(data)) not very good
- sha1(data)+sha2(data) better
- sha1(data.part1)+sha2(data.part2)+sha3(data) strong (where data=data.part1+data.part2)
cd tests
mkdir build
cd build
cmake ..
100% Public Domain
- Steve Reid (Original C Code)
- Bruce Guenter (Small changes to fit into bglibs)
- Volker Diels-Grabsch (Translation to simpler C++ Code)
- Eugene Hopkinson (Safety improvements)
- Zlatko Michailov (Header-only library)
- Dan Machado (Optimization)