Troy mentions some arguments against torrents, but it is better to have a authoritative torrent than none, imo.
Troy mentions some arguments against torrents, but it is better to have a authoritative torrent than none, imo.
For false positive rate of 2^-9 (0.00195) that's 447 MB, which is slightly less than an optimal bloom filter for the same number of items, and lookups will be considerably faster.
Construction time and the fact that you can't add to it without rebuilding the whole thing are the downsides. But given the application I don't think they matter much.
http://sux4j.di.unimi.it/docs/it/unimi/dsi/sux4j/mph/Minimal...
I'd probably just shove the passwords into a database, limiting the index prefix to the first X characters to reduce index size.
I distributing to a general audience, 0.5GB and 10GB isn't that much of a difference, and most people are more equipped for handling lists of strings than for handling bloom filters.
Can it? I think of a bloom filter as similar to a lossy compression scheme and wouldn't expect it to be further compressible to any significant extent using a general purpose lossless scheme. Similar to how general purpose compressors generally don't do very well with mp3s or jpgs.
The nature of the data means it can never really be "perfect" anyway (there are certainly some password breaches that exist but aren't included in the list), so massively reducing the resources required in exchange for a bit of artificial error seems pretty reasonable to me.