Подходит шифрование пароля 3 - PullRequest
1 голос
/ 15 октября 2011

С одной стороны у меня есть: http://forums.enterprisedb.com/posts/list/2481.page Здесь мы объявляем поле как BYTEA и можем расшифровать его, а шифрование находится на уровне БД.

С другой стороны: https://www.owasp.org/index.php/Hashing_Java Вот как varchar и мы сравниваем только хеши для авторизации.

Наконец, Spring дает http://static.springsource.org/spring-security/site/docs/3.1.x/apidocs/org/springframework/security/crypto/password/StandardPasswordEncoder.html + значение секретного символа применяется одинаково для каждого пароля?

Какой подход лучше? (Я склоняюсь к Spring, поскольку, насколько я понимаю, он заключает в себе логику, аналогичную OWASP, в несколько строк кода?)

1 Ответ

1 голос
/ 16 октября 2011

Кодировка PostgreSQL:

  • Ваше приложение, вероятно, будет зависеть от PostgreSQL, и, возможно, вам придется переписать эту часть, если вы хотите использовать ее с другой СУБД.
  • Если PostgreSQL находится на другом компьютере, вам следует рассмотреть возможность использования какой-либо формы безопасного обмена данными между приложением и СУБД, поскольку пароли передаются между ними в виде простого текста.

OWASP против весны:

  • Они очень похожи.
  • Оба используют соль.
  • Весна использует секрет (Овасп нет).
  • Конечно, вы можете изменить Owasp для использования секрета, если вам это нужно, или вы можете использовать StandardPasswordEncoder без секрета.
  • Spring's encode() возвращает только одну строку, которая также содержит соль (как обычно в unix / linux), в то время как Owasp требует дополнительный атрибут базы данных для значения соли.
  • Spring проще и, возможно, лучше поддерживается, чем веб-статья Owasp за 2008 год.
  • Owasp смешивает функции: он кодирует / проверяет пароли и также содержит много кода JDBC.
  • Spring просто кодирует / проверяет пароли, а ваша ответственность - хранение паролей. Но, возможно, ваш фреймворк делает это для вас, или вы можете написать это для себя.

Я бы использовал StandardPasswordEncoder. Это более просто и делает то же самое, что и Owasp.

...