Thank you for sharing! At least, I am interested.
We're glad :)
* Add support for SHA1 in the caching module. [...]
No need to use cryptographic hashes in such an application. They're
slower than those I will mention below and you don't really need the
"from a given output bit you cannot judge to an input bit". It is
sufficient that every output bit will be toggled at a probability of
~50%, thus of a almost perfect dispersion.
The only reason we moved to SHA1 was consistency with other (internal)
systems. Performance (of the hashing algorithm) is not an issue in our
use case.
I did not mean to imply that we felt MD5 was insufficient for the
purposes of the caching module.