Ваша лучшая ставка - одностороннее шифрование.
В этом случае пользователь выбирает / получает пароль.Когда этот пароль хранится в базе данных, он проходит это одностороннее шифрование перед его сохранением.(Вы будете делать это в своем коде c #)
Затем, когда пользователь входит в систему, введенный пароль проходит это же одностороннее шифрование, прежде чем сравнивается с паролем в базе данных.
Это гарантирует, что если хакер войдет в базу данных, будет трудно выучить пароль, потому что ему придется определить тип шифрования, а затем разработать способ его дешифрования, который, на мой взгляд, труден в лучшем случае,в худшем случае невозможно.
Вот ссылка на некоторый код, который может помочь. Одностороннее шифрование
Вы не хотите выполнять шифрование в самом sql, потому что, если хакер получит доступ к вашей базе данных, он сможет просто посмотреть на процедуру / функцию, котораяВы используете для шифрования, и они будут гораздо проще.
И вы не хотите хранить пароль в базе данных в незашифрованном виде ...
Лучше всего написать код для чтения пароля, зашифровать его и обновитьзапись, тогда все, что вам нужно сделать, это продолжать использовать тот же тип шифрования и соль.
Библиотека криптографии c # очень проста в использовании.