любая вменяемая защита может быть построена только на принципе "отторжения" ключа, т.е. пароли никогда не хранятся в программе. и вообще нигде не хранятся. но есть ситуации, когда надо получить доступ к БД до авторизации, например, в окне логина мы хотим получить список пользователей _до_, собственно, их авторизации в БД. пользователь выбирает себя в списке и вводит свой пароль. вот для таких целей используется разделение прав доступа на уровне СУБД. делается, например, "гостевой" пользователь, который имеет право вызвать одну единственную хранимую процедуру. эта процедура возвращает список пользователей. в программу "вшиваются" пароли для гостевого юзера, и даже если юный кулхацкер эти пароли найдет - флаг ему в руки, в лучшем случае он сможет получить список пользователей. а для реальной авторизации по-прежнему будет нужен введенный руками пароль/хэш/pgp-ключ/et cetera.
также надо иметь в виду, что некоторые БД, типа Firebird, имеют опцию логина по хэшу пароля. что ставит раком все потуги хэшировать пароли в приложении. идея хэширования в том, что обратной прямой функции не существует, и для логина придется юзать подбор по словарям и прочие аниме, но если БД позволяет ацтентификацию по хэшу - это тоже самое, в общем-то, что передавать в открытом доступе сам пароль.
посему
нормальная защита должна в первую очередь строится на уровне разделения прав доступа в самой БД, а все прочие финтифлюшки на стороне клиента нужны только в 2х случаях: а) чтобы не гонять зря заведомо бесполезный трафик; б) чтобы шифровать сам канал передачи от сниферов (SSL).
зы. ну а для "автоматических" логинов - однозначно PGP-ключи. огромный их бонус по сравнению со всем прочим - это то, что юзер сам не знает свой пароль. и их без проблем можно привязывать и к IP, и к mac-адресу, и к чему угодно, так что даже если некий гипотетический джедай их спер - если он не спер и весь компьютер "правильного" пользователя заодно, и не подключился из того же сегмента сети - ему это не поможет. круче этого только двух-фазная авторизация по паролю на смс/почту. т.к. емэйл, как и номер телефона - уникальный идентификатор, и в этом случае злоумышленнику придется спереть еще и их, до кучи.