2016-10-11 3 views
0

У меня есть класс, который получает пароль-хэш из базы данных SQL, и есть еще один класс, который берет пароль у пользователя. Как обменять пароль между двумя классами? Является ли доступ к данным с использованием объектов инкапсуляцией в java?Как обменять информацию между классами

+4

Вам действительно нужно определить «безопасный» здесь, чтобы вопрос отвечал. –

+0

Мне нужно, чтобы это было безопасно в том смысле, что любой пользователь не может получить доступ к паролю из приложения. –

+0

Если это хэш, они все равно не могут получить пароль. Но о каком пользователе мы говорим и какое приложение? Ожидаете ли вы, что они смогут запускать приложение на своей машине? Если это так, они смогут получить доступ к тому, что есть в памяти ... –

ответ

1

В идеале вам не следует распространять пароль по слоям и использовать подход, за которым следует функция spring-security, где пароли шифруются как в БД, так и от интерфейса к серверу. Для справки вы можете следовать https://www.mkyong.com/spring-security/spring-security-password-hashing-example/

Вам не нужно использовать пружинную защиту для использования этой функции, но просто используйте связанные классы для достижения такого же поведения.

1

В идеале ваш класс должен получить пароль от пользователя и использовать его на месте.

Тогда он может вызвать ваш класс DAO, передавая ему хеш для сравнения с базой данных для проверки пользователя.

Передача пароля вокруг - плохая практика.

Смежные вопросы