Каков правильный формат соли для раздува с использованием крипты PHP?
Я прочитал информацию, представленную наPHP Ручной ввод дляcrypt()
, но я все еще неуверен в формате соли для запуска алгоритма Blowfish.
В соответствии с ручным вводом, я должен использовать «$ 2 $» или «$ 2a $» как начало строки из 16 символов. Однако в приведенном ниже примере они используют гораздо более длинную строку: '$2a$07$usesomesillystringforsalt$
', который указывает мне, что любая строка, которую я предоставляю, будет нарезана и нарезана кубиками, чтобы соответствовать модели.
Проблема, с которой я сталкиваюсь, на самом деле вызывает алгоритм Blowfish противSTD_DES
, Пример:
$foo = 'foo';
$salt = '$2aЭтот хэш, очевидно, не является джакузи, а на самом делеSTD_DES
только первые два символа соли используются для соли. Однако в примере с руководством по PHP их соль начинается с '$2a$07$
', поэтому, если я добавлю эти три символа в один и тот же код, я получу следующее:
$foo = 'foo';
$salt = '$2aЯ заметил, что могу представить некоторую разницу в символах, которые здесь показаны как '07$
', например04$
а также15$
оба работают, но01$
через03$
не работают (генерирует пустую строку), и такие значения, как99$
а также85$
заставить его вернуться кSTD_DES
снова.
Вопрос:Каково значение этих трех символов после$2a$
'строка, которая, как я полагаю в руководстве, инструктирует функцию crypt использовать метод blowfish.
Согласно инструкции,$2a$
должно быть достаточно, чтобы проинструктироватьcrypt()
использовать метод blowfish; в чем же значение следующих трех символов? Что же тогда является правильным форматом для соли, если эти три символа настолько значимы?
. hash('whirlpool', $foo); // 128 characters, will be truncated
$hash = crypt($foo, $salt);
// $hash = $26HdMTpoODt6
Этот хэш, очевидно, не является джакузи, а на самом делеSTD_DES
только первые два символа соли используются для соли. Однако в примере с руководством по PHP их соль начинается с '$2a$07$
', поэтому, если я добавлю эти три символа в один и тот же код, я получу следующее:
$foo = 'foo';
$salt = '$2a$' . hash('whirlpool', $foo); // 128 characters, will be truncated
$hash = crypt($foo, $salt);
// $hash = $2a$07$b1b2ee48991281a439da2OHi1vZF8Z2zIA.8njYZKR.9iBehxLoIC
Я заметил, что могу представить некоторую разницу в символах, которые здесь показаны как '07$
', например04$
а также15$
оба работают, но01$
через03$
не работают (генерирует пустую строку), и такие значения, как99$
а также85$
заставить его вернуться кSTD_DES
снова.
Вопрос:Каково значение этих трех символов после$2a$
'строка, которая, как я полагаю в руководстве, инструктирует функцию crypt использовать метод blowfish.
Согласно инструкции,$2a$
должно быть достаточно, чтобы проинструктироватьcrypt()
использовать метод blowfish; в чем же значение следующих трех символов? Что же тогда является правильным форматом для соли, если эти три символа настолько значимы?
. hash('whirlpool', $foo); // 128 characters, will be truncated
$hash = crypt($foo, $salt);
// $hash = $2a$07$b1b2ee48991281a439da2OHi1vZF8Z2zIA.8njYZKR.9iBehxLoIC
Я заметил, что могу представить некоторую разницу в символах, которые здесь показаны как '07$
', например04$
а также15$
оба работают, но01$
через03$
не работают (генерирует пустую строку), и такие значения, как99$
а также85$
заставить его вернуться кSTD_DES
снова.
Каково значение этих трех символов после$2a$
'строка, которая, как я полагаю в руководстве, инструктирует функцию crypt использовать метод blowfish.
Согласно инструкции,$2a$
должно быть достаточно, чтобы проинструктироватьcrypt()
использовать метод blowfish; в чем же значение следующих трех символов? Что же тогда является правильным форматом для соли, если эти три символа настолько значимы?
Этот хэш, очевидно, не является джакузи, а на самом делеSTD_DES
только первые два символа соли используются для соли. Однако в примере с руководством по PHP их соль начинается с '$2a$07$
', поэтому, если я добавлю эти три символа в один и тот же код, я получу следующее:
$foo = 'foo';
$salt = '$2a$' . hash('whirlpool', $foo); // 128 characters, will be truncated
$hash = crypt($foo, $salt);
// $hash = $2a$07$b1b2ee48991281a439da2OHi1vZF8Z2zIA.8njYZKR.9iBehxLoIC
Я заметил, что могу представить некоторую разницу в символах, которые здесь показаны как '07$
', например04$
а также15$
оба работают, но01$
через03$
не работают (генерирует пустую строку), и такие значения, как99$
а также85$
заставить его вернуться кSTD_DES
снова.
Каково значение этих трех символов после$2a$
'строка, которая, как я полагаю в руководстве, инструктирует функцию crypt использовать метод blowfish.
Согласно инструкции,$2a$
должно быть достаточно, чтобы проинструктироватьcrypt()
использовать метод blowfish; в чем же значение следующих трех символов? Что же тогда является правильным форматом для соли, если эти три символа настолько значимы?