Примечание: хеширование пароля не предназначено для двухстороннего шифрования (где мошеннический dba может его расшифровать).Он предназначен для хеширования таким способом, который позволяет выполнять проверку без простого показа пароля кому-либо.Низкий или даже умеренный уровень коллизий в некоторых отношениях желателен , так что он позволяет пароль через (и, к сожалению, другие варианты) , но со коллизиями, которые вы никогда не сможетерасскажите, какой на самом деле был настоящий пароль.
Простая реализация - запуск HashBytes поверх пароля.Вы сравниваете предоставленный (хеш) пароль с сохраненным хешем.Если у кого-то нет готовой радужной таблицы, он не сможет найти оригинальный пароль.
INSERT INTO <tbl> (..., passwd) values (...., HashBytes('SHA1', @password))
При проверке паролей вы берете хэш пароля
SELECT HashBytes('SHA1', @password);
и сравниваетеэто против ввода.