Tim, твои знания безнадёжно устарели. md5 100 лет как нигде не используется, этот алгоритм скомпроментирован и элементарно ломается через радужные таблицы. Т.е. если используешь md5, то можешь хранить в чистов виде - разницы нет.
Для хранения хешей паролей есть стандартизированная функция
PBKDF2 (в ноде из коробки есть), где используется алгоритм SHA-2. Надёжность определяется длиной ключа, количеством итераций хеширования и длиной соли. Я обычно использую длину 256, соль 32 (уникальная для каждого пароля, хранится в БД) + статическая соль 32 (хранится в коде) и 8000 итераций, но если надёжность оч важна, то ставь 512 и хотя бы 10 000. Операция хеширования крайне тяжёлая, поэтому есть смысл положить на отдельный сервак.
Что касается снифинга трафика - ставь https и не еби мозг.
А вот пытаться придумать свой алгоритм защиты точно не стоит

Криптография -не место для велосипедов.
Цитата:
|
тк шифруемая случайная фраза каждый раз будет разная.
|
Тока если у тебя генератор истинно случайных чисел, например снимаются показания сейсмической активности или еще что) В противном случае - это все псевдослучайные величины, тот же Math.random не разу не криптостойкий. Используй хотя бы тогда crypto.randomBytes из ноды - для генерации соли сойдёт.