Вот некоторые вещи, которые я не люблю о Java (который не является моим любимым языком):
Вам нужен доступ к исходному паролю, или вы просто собираетесь попытаться сравнить введенный пароль с паролем в базе данных?
Если вам нужен доступ к исходному паролю , тогда вам придется использовать алгоритм шифрования вместо алгоритма хеширования.
Если все, что вы делаете, это сохраняете пароль в базе данных, чтобы вы могли позже проверить его по известному входному значению, тогда хеш с солью будет работать.
Помните, что когда клиент отправляет учетные данные для проверки, вы не хотите отправлять пароль открытым текстом!
Хеш-код и соль - это путь, потому что невозможно получить исходный пароль от него. Если вы зашифруете, а затем расшифруете пароль, пароль можно будет восстановить, так что это не лучший вариант.
Я согласен, что имеет смысл иметь все шифрование в одном месте. Однако если вы отделите ключ от данных (введите код C #, данные в базе данных), это повысит безопасность. Кроме того, Sql Server использует главный ключ при шифровании, что означает, что если вам нужно восстановить данные на новый сервер, у вас возникнут проблемы с восстановлением данных.
Все сводится к управлению ключами и тому, как вы хотите это делать. .
Вы можете проверить NSScreen для OS X и UIScreen для iPhone.
Из документации:
«... вы должны использовать свойства этот объект, чтобы получить рекомендованный прямоугольники рамки для вашего Вы можете проверить это, дважды зашифровав один и тот же пароль, он должен дать другой зашифрованный текст. Если нет случайного IV, не используйте его, просто зашифруйте его в своем приложении.
Как и на большинство вопросов, лучший ответ зависит от контекста вашей ситуации. Хорошего решения нет.
Некоторые варианты:
Оставьте пароль в виде обычного текста или зашифруйте его с возможностью обратимого преобразования. Используйте возможности SQLServer для шифрования важных полей на уровне РСУБД или используйте аналогичные функции шифрования и надейтесь, что MS реализовала разумное управление ключами и ключи достаточно безопасны для ваших целей. На практике все, что делает шифрование, - это сворачивание хранилища множества маленьких секретов в хранилище одного большого секрета. Это может сделать проблему более управляемой, но сама проблема никогда не исчезнет.
Необратимо «зашифруйте» пароль с помощью хеширования. алгоритм или некоторая форма crypt (). В зависимости от доступных векторов атак этот метод может не обеспечить значительного улучшения безопасности при хранении открытого текста
. Использование хешированных паролей ограничивает ваши возможности в плане выбора безопасного алгоритма аутентификации. При таком подходе вы, скорее всего, в конечном итоге отправите простые тексты или другой материал, который не лучше транспорта (независимо от того, используется ли несвязанное шифрование или нет), это может быть существенным риском с точки зрения доверия
. Приемлемая атака по словарю в автономном режиме, если хэши украдены, восстановление некоторой части паролей следует сразу предполагать, если они имеют какую-либо ценность для злоумышленника
. В некоторых случаях знание хэша пароля может быть столь же плохим, как знание пароля с точки зрения доступа к системе.
Использование хешированных паролей ограничивает ваши возможности в плане выбора безопасного алгоритма аутентификации. При таком подходе вы, вероятно, в конечном итоге отправите простые тексты или другой материал, который не лучше транспорта (независимо от того, используется ли несвязанное шифрование или нет), это может быть существенным риском с точки зрения доверия. Приемлемая атака по словарю в автономном режиме, если хэши украдены, восстановление некоторой части паролей следует сразу предполагать, если они имеют какую-либо ценность для злоумышленника
. В некоторых случаях знание хэша пароля может быть столь же плохим, как знание пароля с точки зрения доступа к системе.
Использование хешированных паролей ограничивает ваши возможности в плане выбора безопасного алгоритма аутентификации. При таком подходе вы, вероятно, в конечном итоге отправите простые тексты или другой материал, который не лучше транспорта (независимо от того, используется ли несвязанное шифрование или нет), это может быть существенным риском с точки зрения доверия. Приемлемая атака по словарю в автономном режиме, если хэши украдены, восстановление некоторой части паролей следует сразу предполагать, если они имеют какую-либо ценность для злоумышленника
. В некоторых случаях знание хэша пароля может быть столь же плохим, как знание пароля с точки зрения доступа к системе.
При таком подходе вы, вероятно, в конечном итоге отправите простые тексты или другой материал, который не лучше транспорта (независимо от того, используется ли несвязанное шифрование или нет), это может быть существенным риском с точки зрения доверия. Приемлемая атака по словарю в автономном режиме, если хэши украдены, восстановление некоторой части паролей следует сразу предполагать, если они имеют какую-либо ценность для злоумышленника
. В некоторых случаях знание хэша пароля может быть столь же плохим, как знание пароля с точки зрения доступа к системе.
При таком подходе вы, вероятно, в конечном итоге отправите простые тексты или другой материал, который не лучше транспорта (независимо от того, используется ли несвязанное шифрование или нет), это может быть существенным риском с точки зрения доверия. Приемлемая атака по словарю в автономном режиме, если хэши украдены, восстановление некоторой части паролей следует сразу предполагать, если они имеют какую-либо ценность для злоумышленника
. В некоторых случаях знание хэша пароля может быть столь же плохим, как знание пароля с точки зрения доступа к системе.