Data Deduplication with Hashing: How Content-Based Storage Works