There are non-cryptographic hashes as well.
-Cryptographic ones
-------------------
+<<crypto,Cryptographic ones>>:
- <<md5,MD5>>
- <<sha1,SHA1>>
- <<sha1:sha1_hmac(),SHA1_HMAC>>
- <<usage,Common usage>>
-Non-cryptographic ones
-----------------------
+<<checksum,Checksums>>:
+- <<crypto:adler,Adler-32>>
+
+<<nocrypto,Non-cryptographic ones>>:
- <<strhash,String & block hashes>>
- <<inthash,Integer hashes>>
+[[crypto]]
+Cryptographic hashes
+--------------------
+
[[md5]]
MD5
----
+~~~
!!ucw/md5.h
[[sha1]]
SHA1
-----
+~~~~
!!ucw/sha1.h
[[usage]]
Common usage
-------------
+~~~~~~~~~~~~
There are two ways you can use the hashing routines.
See also <<string:mem_to_hex()>>.
+[[checksum]]
+Checksums
+---------
+
+Their purpose is checking against random data changes, hardware
+failures and alike. They are not to be used against aimed attacks.
+
+The <<compress:adler,Adler-32 checksum>> is documented in the
+<<compression,compression capter>>.
+
+[[nocrypto]]
+Non-cryptographic hashes
+------------------------
+
+They are usually used to identify values in hash tables.
+
+All these functions expect to be moduled by the size of a hash table.
+The size should be a prime number (it gives better distribution).
+
!!ucw/hashfunc.h