pbkdf2 VS bcrypt, раунды?

У меня тупой вопрос (и, наверное, уже задавали):

Люди всегда сравнивают BCrypt и PBKDF2 и говорят, что BCrypt лучше, потому что, например, медленнее используется GPU. , но они игнорируют Rounds value, особенно когда я говорю о Python, где BCrypt не является мощным, поэтому мой вопрос прост:

В тестах использовалась отличная библиотека python Passlib

стоит ли использовать BCrypt даже с небольшим круглым значением? в Passlib значение по умолчанию равно 12, протестировано и дало мне 0.40 seconds, в то время как PBKDF2 дало мне значение по умолчанию, равное 12000 раундам: 0.142 seconds

так, например, если я использую BCrypt только с 5 раундами, я скажу: эй, мое приложение более безопасно и быстрее, чем использование PBKDF2 с 12000 раундов! (это кажется глупым, я знаю, извините).

вот результаты тестов


person Abdelouahab Pp    schedule 08.12.2012    source источник


Ответы (1)


Обратите внимание, что фактическое количество итераций в bcrypt составляет 2 ^ раундов, поэтому, например, раунды = 5 -> итерации = 32, а раунды по умолчанию = 12 -> итерации = 4096. При сравнении bcrypt и pbkdf2 убедитесь, что они имеют в виду одно и то же, когда говорят «раунды».

Общее правило для bcrypt заключается в том, чтобы использовать наибольшее значение для раундов, которое вы можете себе позволить, с точки зрения входа пользователя в систему, который не будет раздражающе медленным. Ваш тест 0,4 секунды звучит так, будто вы правы.

person rossdavidh    schedule 11.03.2013
comment
из того, что я нашел, кажется, что разработчики следуют текущему году: кратно 1000 (12*1000) для 2012 года и 2^12 для bcrypt - person Abdelouahab Pp; 12.03.2013