Files
boost_unordered/examples/siphash
Daniel James 27c4e90374 Add trailing newlines to siphash examples.
I'm not sure if I'll actually release this example. I don't think it does a
good job of demonstrating what I wanted.

[SVN r84249]
2013-05-12 14:33:15 +00:00
..

Siphash example
---------------

Most of the commonly used hash functions are vunerable to
'hash-flooding' attacks. These can happen if the table is filled with
values which are likely to cause hash collisions. SipHash[1] is a fast
hash function proposed by Jean-Philippe Aumasson and Daniel J.
Bernstein2 to resist these attacks. While young and relatively untested,
it's been demonstrated that it's less vulnerable to attacks than popular
hash functions, such as MurmurHash and CityHash.

This a nice example, as it has a distinct practial use to boost::hash
and demonstrates a hash function with state. It also shows how a generic
hash function might be built on top of a binary hash function.

Note that this is an example, and far from fully polished. Some issues
with the current implementation:

 - It's slow.
 - Only works on little endian machines.
 - Only supports a subset of the standard library.

I should improve it a bit before it's properly released. But if you wish
to implement something better, there are several C implementations
listed on the SipHash page[1]. I probably won't even try to compete with
them. If anyone is willing to implement a high quality SipHash library for
boost, that would be very much appreciated.

[1] https://131002.net/siphash/

--------------------------------------------------------------------------------

Copyright 2012 Daniel James.
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)