MD5Hash Class Reference

An MD5 hash generator. More...

#include <md5.h>

List of all members.

Public Member Functions

 MD5Hash ()
 The default constructor.
 ~MD5Hash ()
 The destructor.
int Process (const void *_data, size_t _length)
 Runs an MD5 hash on the data provided.
int Process (CrissCross::IO::CoreIOReader *_reader)
 Runs a hash on the file provided.
int ProcessBlock (const void *_data, size_t _length)
 Processes a piece of the dataset.
void Finalize ()
 Finalizes the ProcessBlock() calls and generates the final hash value.
void Reset ()
 Resets the internal MD5 context and hash buffer.
const char * ToString () const
 Converts the internal hash data into an hex string, a human readable format.
bool operator== (const MD5Hash &_other) const
 Equality operator.
bool operator!= (const MD5Hash &_other) const
 Inequality operator.


Detailed Description

An MD5 hash generator.

In recent years, MD5 hashes have waned in popularity because researchers have found that collisions for MD5 are easy to generate. However, this sort of attack can be rendered useless when a salt is added to the input dataset.

Warning:
Because MD5 is known to have weaknesses, use at your own risk!
See also:
Hash MD2Hash MD4Hash

Member Function Documentation

bool operator!= ( const MD5Hash _other  )  const [inline]

Inequality operator.

Compares two instances of MD5Hash to see if the hashes are not equal.

Parameters:
_other The other instance of MD5Hash to compare to.

bool operator== ( const MD5Hash _other  )  const

Equality operator.

Compares two instances of MD5Hash to see if the hashes are equal.

Parameters:
_other The other instance of MD5Hash to compare to.

int Process ( CrissCross::IO::CoreIOReader _reader  ) 

Runs a hash on the file provided.

Parameters:
_reader The pre-opened CoreIOReader to run the hash on.
Returns:
Zero on success, nonzero on failure.

int Process ( const void *  _data,
size_t  _length 
)

Runs an MD5 hash on the data provided.

Parameters:
_data The data to hash. The buffer does not need to be null terminated.
_length The data length in bytes.
Returns:
Zero on success, nonzero on failure.

int ProcessBlock ( const void *  _data,
size_t  _length 
)

Processes a piece of the dataset.

This function will process only a segment of a larger dataset. It is designed to be called multiple times before an eventual Finalize() call.

Parameters:
_data The data segment to hash.
_length The length of the data segment in bytes.

const char* ToString (  )  const

Converts the internal hash data into an hex string, a human readable format.

The memory location returned by this function is freed when the class is destructed.


Generated on Sun Feb 8 11:09:59 2009 for CrissCross by  doxygen 1.5.8