Я был здесь вчера и получил несколько действительно хороших ответов.Я взял то, что получил, и собрал, что, я думаю, будет довольно безопасным алгоритмом.У меня проблема с использованием blowfish с циклом for, который генерирует соль.
Я использую символы base64 и цикл for для получения случайной строки.Я хочу взять эту сгенерированную строку и вставить ее в функцию crypt в качестве соли.
Поскольку документация о blowfish очень скудна, а в документации PHP на самом деле об этом даже не упоминается, я вроде как закололаздесь, в темноте.
Действительно странная вещь - если вы запустите этот код таким, какой он есть сейчас, он не потерпит неудачу.Удалите из * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.Насколько я понимаю, blowfish состоит в том, что зашифрованная строка должна начинаться с '$ 2a $ 07 $' и заканчиваться на '$', следовательно, конкатенация в функции crypt. Мне действительно не нужна начальная строка надцикл и просто хотел избавиться от него.
Я также хотел бы получить разъяснения о наилучшей практике хранения случайных солей, либо в базе данных или путем сохранения выходных данных функции cryptв базе данных?
Вчера не было никакого реального кода, просто обсуждение. Я хотел бы собрать немного кода сегодня и иметь кое-что, что является довольно безопасным. Если кто-то может придуматьлучший алгоритм, я всегда открыт.
$base64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
$salt = '$2a$07$';
for($i=0; $i<60; $i++)
{
$salt .= $base64[rand(0,63)];
}
return crypt('password', '$2a$07$'.$salt.'$');