Ну и как известно, одним из слабых мест md5 является наличие коллизий. То есть по простому два разных куска текста могут задавать один и тот же hash. Поэтому солить md5, при современных вычислительных мощностях - не шибко эффективно. Можно сбрутить также с помощью хеш таблиц. Да и куча онлайн сервисов предоставляет уже несколько лет свои услуги. MD5 последнее время используют больше для сверки контрольной суммы, а как и сказали выше смотрите bcrypt.