2010-10-18 3 views
1

Я работаю над системой, которая будет применяться в реальной среде. Мне нужно создать механизм высокой безопасности для системы, одним из которых является шифрование паролей пользователей в моей базе данных.Каковы критерии выбора алгоритма шифрования для моей системы

Я предпочитаю использовать метод одностороннего шифрования для двухстороннего шифрования. Проблема заключается в том, что я хочу выбрать хороший алгоритм, который имеет хорошую производительность и имеет разумные причины убедить моих партнеров, почему я выбираю один алгоритм вместо другого.

Можете ли вы дать мне несколько советов по этому поводу?

+0

Почему вы предпочитаете шифрование по «криптографической хэш-функции»? Если вы предпочитаете шифрование, есть много algos, но каковы ваши цели? Производительность, пространство, ....? – yadab

+0

Предполагаю, что вы хотите хранить пароли только для проверки? Или вы хотите сохранить их, чтобы пользователи могли получать свои значения? Ответы очень сильно зависят от варианта использования. –

ответ

0

я не знаю, какой аргумент вы ищете, но:

SHA является хорошим однонаправленные хэш-функции.

http://en.wikipedia.org/wiki/Secure_Hash_Algorithm

Edit:

+0

Я не понимаю, что вы подразумеваете под аргументом? – palAlaa

+0

В качестве аргумента для представления вашим партнерам выбрать один алгоритм, противоположный другому. –

+0

На самом деле я работаю над моим проектом окончания, и я должен рассказать моим партнерам, почему я делаю каждую строку в коде, чтобы быть готовым обсудить это перед врачами и профессорами :) – palAlaa

3

Не просто использовать простой однонаправленной хэш-функции.

Используйте что-то наподобие PBKDF2 или bcrypt. Я уверен, что для Java будут доступны бесплатные, бесплатные готовые реализации (при условии, что они еще не включены в JRE).

+0

PBKDF2 - с использованием строки алгоритма '' PBKDF2WithHmacSHA1'', - но bcrypt нет, и по какой-то причине он не находится в Bouncy Castle. –