Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > длина хеш-строки в функции Crypt() алг. blowfish


Автор: zebulun 30.9.2012, 15:18
такой код

Код

$cr_pass=crypt($pass, '$2a$10$'.$salt);

 
получаем:

Код

$cr_pass='$2a$10$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi';

длина строки $cr_pass=60, и всегда начинается с '$2a$10$', вопрос:
всегда ли возвращаются строки такой длины и по сути символы '$2a$10$' можно отбрасывать перед записью в базу? просто про инфу про длину возвращаемого значения для данной функции и алгоритма в нете не могу найти.

Автор: Sanchezzz 30.9.2012, 15:56
http://php.net/manual/ru/function.crypt.php - Blowfish-шифрование со следующей солью: "$2a$", весовой параметр из двух цифр, "$" и 22 цифры из алфавита "./0-9A-Za-z". Использование других символов в соли повлечет за собой возвращение пустой строки. Весовой параметр из двух цифр является двоичным логарифмом счетчика итераций низлежащего хэширующего алгоритма, основанного на Blowfish, и должен быть в диапазоне 04-31, значения вне данного диапазона вызовут отказ crypt().

Соль вполне можно хранить отдельно главное передать ее обратно, я бы тоже хранил бы ее отдельно)
Длину соли можно уменьшать задав константу CRYPT_SALT_LENGTH по умолчанию  вроде 22 сим, это уменьшает соль

Добавлено @ 15:58
Код

if ( ! defined ( 'CRYPT_SALT_LENGTH' ) )  define ( 'CRYPT_SALT_LENGTH', 12 );


Автор: zebulun 30.9.2012, 16:11
соль я вообще не храню, интересует меняется ли количество символов на выходе или имеет фиксированную длину в 60 символов?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)