Склеп PHP и соль - больше разъяснения

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

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

Поскольку документация о шифре так редка, и документы PHP действительно даже не упоминают это, я - вид поножовщины в темноте здесь.

Действительно странная вещь состоит в том при выполнении этого кода путем, это теперь, это не перестанет работать. Удалите или '$ за a$2$ 07' сверху для цикла или от функции склепа, и это периодически возвратит зашифрованную строку. Мое понимание шифра - то, что зашифрованная строка должна начаться 'с $ за a$2$ 07' и конца в "$' следовательно конкатенация в функции склепа. Мне действительно не нужна начинающаяся строка выше для цикла и просто требуемый для избавлений от него.

Я также хотел бы разъяснение о лучшей практике при хранении случайной соли, или в базе данных или путем хранения вывода функции склепа в базе данных?

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

$base64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
$salt = '$2a$07$';

for($i=0; $i<60; $i++)
{
    $salt .= $base64[rand(0,63)];
}

return crypt('password', '$2a$07$'.$salt.'$');
9
задан timmay 3 February 2010 в 13:54
поделиться

1 ответ

Похоже, что crypt () не любит + чугун в соли и много других специальных также символы ( * , % и т. д.). Если вы отфильтруете их, он должен работать при каждой попытке (и нет необходимости повторять строку идентификатора соли).

3
ответ дан 4 December 2019 в 23:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: