This document reviews and compares various hash algorithms including MD-2, MD-4, MD-5, SHA-0, SHA-1, and SHA-2. It finds that while these algorithms were once standards, they have now been broken or are inefficient. The document implements a modified version of MD-5 that generates variable-sized digests and compares it to SHA-1 and standard MD-5 based on timing, security, and space requirements. It finds SHA-1 has the most secure internal structure but is least efficient in timing. In conclusion, there remains a need for a more secure and efficient hash algorithm.