Шифрование (4)(= 4 итерации )по сравнению с SHA512 или что-то другое с уникальной солью для каждого пароля?

Фон:

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

Прежде чем я углублюсь в реализацию LightOpenID, я хочу добавить обычный логин. Книга, по которой я учился, называется Head First PHP & MySQL (2008 ), и окончательный код главы использует SHA('$user_password')как часть запроса mysql.

Поскольку я интересуюсь письмом Джеффа Этвуда, я хорошо знаю bcrypt как scrypt. Но, поскольку нет реализации scrypt на php и нет выделенного сервера для его запуска, я решил хотя бы пока изучить реализацию bcrypt.

Однако я не совсем наивен,Я знаю, что должен следить за тем, чтобы не перенапрягать мои очень скромные ресурсы хостинга. Само приложение php всегда должно стоять на первом месте перед чем-либо еще, касающимся ресурсов.

Метод Эндрю Мура кажется хорошим (, хотя мне нужно посмотреть, как реализовать его на php 5.2.17, который использует мой хост ), и он поставляется с подсказкой для аппаратной скорости :

You should select a number of rounds that results in 200-250 ms of work. Part of the reason why bcrypt is secure is that it is slow. You must ensure to have a number of rounds that keeps that characteristic. – Andrew Moore

. Другой пользователь утверждает, что для него выполнение microtime()дает 0,314 для Bcrypt (9 ), что, таким образом, было бы почти оптимальным.

Вопрос:

Судя по тому, что в моем распоряжении есть очень скромные ресурсы, и я хотел бы извлечь из них максимум пользы, оставив большую часть для самого приложения php, мне все же лучше использовать Bcrypt (4 )вместо что-то другое?

Bcrypt (4 )возвращает true почти мгновенно, но сохраняет ли он все еще ту характеристику, о которой говорит Мур? (Может ли это быть связано с оперативной памятью, которая усложняет брутфорс на GPU? )Или SHA512 или что-то другое на самом деле будет таким же быстрым, но более безопасным на данный момент?

Я ожидаю, что Bcrypt (4 )выиграет в этой ситуации, но, черт возьми, я знаю, верно? :с

5
задан Community 23 May 2017 в 12:03
поделиться