Для хеширования у вас есть несколько поддерживаемых алгоритмов в System.Security.Cryptography, для вашего варианта использования вы, вероятно, захотите выбрать хеш на основе SHA или что-то подобное.
Относительно сравнения: Вы не сравниваете значение БД с тем, которое дал вам пользователь. Вы используете ту же функцию шифрования / хеширования, что и для хранения пароля в БД, на этот раз с пользовательским вводом. Если результат равен хешу в БД, пароль был (вероятно) правильным.
Предполагается, что никто, имеющий доступ к БД, не сможет получить пароли в виде открытого текста, и даже ваша программа не должна знать об этом (только часть, которая принимает ввод пользователя, будет иметь его в течение короткого времени).
Ссылки (возможно, даже дубликаты):