Spring Security/Ключевые сервисы Spring Security: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 104:
= Шифрование пароля =
Интерфейс <code>PasswordEncoder</code> используется для поддержки работы с паролями, которые хранятся в зашифрованном виде. Обычно это означает, что пароли "хэшируется" с использованием алгоритма построения дайджеста, такого как например MD5 или SHA.
 
== Что такое «хеш»? ==
Хэширования паролей не уникальное свойство Spring Security, но явлется распространенным источником путаницы для пользователей, которые не знакомы с данной концепцией. Хэш- (или дайджест) алгоритм представляет собой одностороннюю функцию, которая производит некоторые выходные данные фиксированной длинны (хеш) из входных данных произвольной длинны, таких например, как пароль. MD5 хэш строки "password" (в шестнадцатеричной системе) выглядит следующим образом:
 
<pre>
5f4dcc3b5aa765d61d8327deb882cf99
</pre>
 
Хеш является "односторонним" в том смысле, что очень трудно (практически невозможно) получить оригинальные входные данные на основе которых было получено хеш-значение, либо вообще какие-либо данные, которые приведут к получению такого же хеш-значения. Это свойство делает хеш-значения очень полезными для аутентификации. Они могут быть сохранены в базе данных вместо нешифрованных паролей и даже если возникнет угроза похищения этих данных, то пароль используемый для аутентификации не будет сразу же раскрыт. Заметим, это также означает, что не будет возможности восстановления пароля, когда он будет храниться в закодированном виде.