1. A hashing method performed by a computing apparatus and comprising the acts of: (a) receiving a message at an input port; (b) storing the received message at a first computer readable storage medium coupled to the input port; (c) constructing an array of data from the stored message; (d) storing a set of values representing the array in a second computer readable storage medium coupled to the processor, the array representing a state of a heap model algorithm; (e) updating the array by applying the heap model algorithm to the array; (f) repeating acts (d) and (e) until the heap model state reaches a predetermined state; (g) using the updated array resulting from act (f) to provide a hash value of the message; and (h) the processor storing the hash value in a third computer readable storage medium.