CacheHash does pretty much exactly what it says on the tin. It creates a cache to store metadata about files, and verifies the file hasn't changed by doing a quick hash comparison. The cache persists in between processes as a sqlite db, and can be used for any number of operations.