Open jbosboom opened 2 years ago
Very interesting, thanks a lot for pointing this out. I've updated fnv.exe
for fast suffixes and will try to optimize other stuff later.
Seems most useful for words.py
to allow bigger word lists combinations, since fnv.exe
is still kind of limited by the big number of false positives it makes.
FNV is an invertible function. Its inverse is
Then
ifnv(fnv("abcd"), "dcba") == fnv("")
. You can use this to speed upfnv.exe
andwords.py -c 2
:fnv.exe -s foo
, you can inverse-hash the target(s) with the reversed suffix.fnv.exe
can search longer strings using a bidirectional search: search forwards for n characters and save their hashes, then search backwards from the target(s) for m characters looking for matching hashes. This is a time-memory tradeoff, but it seems worthwhile because37**n + 37**m
is much smaller than37**(n+m)
.words.py -c 2
.