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 as a table having a plurality of entries in a first computer readable storage medium coupled to the input port; (c) a processor coupled to the first storage medium and which computes, according to a card shuffling algorithm, a new order for the entries of the table; (d) the processor updating the table according to act (c) and storing the updated table in the first storage medium; (e) the processor using the updated table resulting from act (d) to provide a hash value of the message; and (f) the processor storing the hash value in a third computer readable storage medium.