ОК, это многогранный вопрос. Вы должны учитывать как безопасность информации, когда она передается через Интернет, так и когда она находится на ваших серверах.
Что касается случая 1, то, конечно, не стоит рисковать раскрытием паролей, но созданное вами приложение должно быть удобным для пользователей. Если все сделано правильно, информация может быть передана в защищенном режиме без риска раскрытия. Однако следует помнить, что правильная реализация криптографии не является легким делом. На самом деле, когда я говорю, что вы никогда не должны реализовывать свою собственную криптографию, а использовать существующие проверенные временем криптографические библиотеки, обращая внимание на их правильное использование.
Что касается второго пункта, то, хотя вы правы в том, что вам не следует реализовывать криптографию самостоятельно, существует множество программ и библиотек для генерации открытых и закрытых ключей и их использования для защиты информации.
Вы на 100 процентов должны зашифровать информацию, хранящуюся в вашей базе данных. Каждый сервер небезопасен, если у него достаточно времени и мотивации. Однако зашифрованная информация может быть вычислительно невозможна для дешифрования без соответствующей информации.