Troubleshooting your MD5 implementation

Introduction

This is a list of MD5 hashes of an empty string ("") computed with various buggy implementations, with descriptions of the bugs. (The correct hash is d41d8cd98f00b204e9800998ecf8427e.)

Reversed byte order in 32-bit integers

Forgot the bit rotation or an addition

Wrong order of bit rotation and additions

Wrong precedence of XOR vs. AND/OR

State of algorithm shuffled incorrectly

Miscellaneous issues