Власне тому, що коли ви md5 пароль, він обчислює хеш. Тоді рядок довше 16 символів, деякі "хеші" можуть стикатися між ними.
Наприклад, якщо md5("noroof")
дається 9ce405c98406f2f6d5326ee6b51d19cd
можливість, md5("ididntfixedmyroofwhenicould")
можна було б дати той самий хеш 9ce405c98406f2f6d5326ee6b51d19cd
. Пам'ятайте, що хеші складаються з 32 символів "0123456789abcdf" (для md5 в цьому випадку).
Можливо, вони примушують 16 символів, тому що алгоритм, який обчислює хеш, запевняє, що не буде зіткнення в базі даних із раніше збереженим паролем.