1. A hashing method performed by a computing apparatus and comprising: receiving a message at an input port; storing the received message at a first computer readable storage coupled to the input port; constructing an array of data from the stored message, wherein the array is at least a two dimensional array representing a plurality of objects arranged in a heap; storing a set of values representing the array in a second computer readable storage coupled to a processor, the array representing a state of a heap model algorithm; applying the heap model algorithm to the array in order to update the array, wherein applying the heap model algorithm to the array comprises: removing at least one of the objects; and replacing the object with another of the objects in the heap; repeating the storing of the set of values in the second computer readable storage and applying the heap model algorithm to the array until the heap model state reaches a predetermined state; using the updated array to provide a hash value of the message; and storing the hash value in a third computer readable storage.