Image released to the public domain by David Eppstein.
Shane Tomlinson
Top 25 Most Used Internet Passwords - An infographic by the team at Tom Fanelli - Infographic Marketing.
Ban users from using one of the top 50k most common passwords.
Math(s) speak: determine if an item is a member of a set.
Create a bit array, hash entries to a position in array.
Image released to the public domain by Jorge Stolfi.
A Bloom filter is a space-efficient probabilistic data structure, conceived by Burton Howard Bloom in 1970, that is used to test whether an element is a member of a set.
Can be simulated with only two hash functions.
To find an arbitrary i:
hash(i) = (a + b * i ) % m
Where a is the result of Hash 1, b is the result of Hash 2, and m is the max value of the bit array.
Wikipedia: https://en.wikipedia.org/wiki/Bloom_filter
MDN bit operations: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators
MDN Uint32Array: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array
Simulate k hashes with only 2: https://willwhim.wpengine.com/2011/09/03/producing-n-hash-functions-by-hashing-only-once/