Соль на основе времени не сделает MD5 легче сломанным. Вы по-прежнему полагаетесь на 1) у пользователя есть хороший пароль, чтобы победить вычисления с использованием грубой силы, и 2) MD5 - хороший хеш. Это основной ответ на ваш вопрос. Тем не менее, это может быть не очень хорошая идея в любом случае. Некоторые комментарии -
Если вы не можете убедиться, что время клиента или сервера синхронизировано (или вы используете Javascript для фальсификации синхронизации), клиент должен будет отправить время, которое он использовал как солт. Сервер должен был бы решить, было ли используемое время достаточно близко к времени сервера.
Даже в случае синхронизации вам, вероятно, придется принимать хэши плюс-минус минуту или около того из-за задержки в Интернете. Другая проблема заключается в том, что, если я перехватываю информацию, я могу немедленно использовать этот хэш, пока я все еще в этом временном окне.
Из-за проблем, описанных выше, лучшей идеей является использование единовременной соли, назначенной серверу, с хешем, поскольку кажется, что вы не хотите использовать SSL. Другими словами, каждый раз, когда форма входа в систему отправляется клиенту, сервер генерирует случайную уникальную строку соли, отправляя ее клиенту и отслеживая, что это приемлемая соль. Тогда клиент использует это как соль с паролем. После того, как это передано один раз, сервер отбрасывает это как приемлемую солт-строку. Никакие два хэша никогда не должны быть одинаковыми. Недостатком этого является то, что вы должны отслеживать эти приемлемые строки соли.