uhash - über hash


Uhash may be used to calculate multiple hashes (a.k.a fingerprints, checksums, message digests) on the given files "simultaneously", that is: each of the relevant hash functions is applied on data, one after another.  It lets us hash pipelines and any similar mechanisms that pass data in real time.  Note that files are processed sequentially.  Maybe in the future support will be added to take advantage of the "simultaneity" provided by the operating system, maybe through threads to either apply the hash functions "simultaneously" or operate on files in the same way, or both.  It has been designed to be both (very) fast and secure, using mmap() to minimize I/O and applying the hash functions on every block of each file which is read only once. It was designed to be secure by default: temporary buffers are wiped out before being freed. If security isn't such a big deal, you can make the program run faster with the -f option. Other sensitive resources such as keys are always wiped and handled with care.

It's copyrighted under a BSD-style license. See: http://www.opensource.org/licenses/bsd-license.php 

It's very portable and it's known to compile and run on the following systems:

  • Linux 2.4.x / 2.6.x 
  • FreeBSD 5.4
  • NetBSD 3.99.7
  • OpenBSD 3.8
  • DragonFlyBSD 1.2 / 1.4.0 
  • MacOS X (Panther)
  • SunOS 5.9 / 5.10 
  • Windows 2000 SP4 with Cygwin 1.5.19
  • Windows XP SP2 with Cygwin 1.5.19 

Latest versions:

  NOTE: The final 1.2 version is coming.

Manual page:  uhash.html

Things to do:
  • Better page layout.
  • Pending sourceforge project page at http://uhash.sourceforge.net/
  • Translations. 

 Send comments, suggestions and patches to: ighighi [at] gmail [dot] com

Last changed on: Sat Jul 22 07:26:58 UTC 2006