[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Пуд соли
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
twin
Цитата (glock18 @ 26.07.2013 - 10:19)
Хотя, на мой взгляд, учитывая прогресс темы, ее лучше было бы уже прекратить или не начинать...

Лично я прекратил. Всё, что было нужно, я узнал. Конечно, было бы гораздо лучше, если бы это было в плане нормальной дискуссии, а не в ключе "ты чо, дурак?" Ну что поделать, молодежь, издержки воспитания.

Главной цели я достиг, материал в моих статьях исправлен, читатели получат пользу. Ничего нового MiksIr больше не скажет, он уже ведет себя как откровенный, махровый тролль. И если раньше это можно было терпеть ради информации, теперь нет смысла.

Единственно что могу добавить по теме, так, реплика в сторону, можно принять за старческое брюзжание.
Цитата
Википедия - это энциклопедия с общей информацией. Это не документация и не примеры использования, как ваш блог.
Так убрал бы примеры использования тогда. Вот в англоверсии их реально нет. А то уподобился какому то бложику типа моего, и нагло врет теперь, что примеров нет.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Кстати, интересная информация к размышлению. Пункт 4 и ниже.

Вот почему я никогда не тороплюсь с новшествами, и даже снискал славу олдфага. К слову сказать наш форум висит на версии 5.2.17


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
glock18
Цитата (twin @ 26.07.2013 - 12:25)
Кстати, интересная информация к размышлению. Пункт 4 и ниже.

Вот почему я никогда не тороплюсь с новшествами, и даже снискал славу олдфага. К слову сказать наш форум висит на версии 5.2.17

7й мягко говоря, в твою концепцию не очень вписывается
twin
glock18
Цитата
7й мягко говоря, в твою концепцию не очень вписывается
А если я использую crypt() вместо hash() впишется? smile.gif Концепция то не столько в функции, сколько в скрытости последовательностей алгоритмов.

MiksIr
Цитата
Ветка 5.2 более не поддерживается, в том числе по проблемам безопасности, так что непонятно, чем вы хвастаетесь.

Я не хвастаюсь, я констатирую факт. Хостер на сегодняшний день предоставляет такую версию.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Guest
MiksIr, вы можете, как знаток, четко сказать как сейчас нормально хранить хэш пароля?
А то по вашим спорам, намекам, ссылкам и ответам на запутывающие ремарки оппонента мысль ускользает.
Смотрю куча всяких функций в пхп - crypt, hash, sha1, crc32,md5...
И где и какую соль хранить?
Есть результирующая формула? Когда на входе - пароль.
Плюс естественно с учетом версий пхп. Ветка 5.2 еще не скоро пропадет с наших хостингов.
twin
MiksIr
Цитата
Я вот даже не знаю, какой алгоритм будет, если дефолтную соль использовать, а вы даже количество итераций знаете?
А это разве не то (в мануале)?
Цитата
The default number of rounds is 5000
Или я опять что-то недопонял?

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Цитата (MiksIr @ 26.07.2013 - 14:21)
Цитата
Если не указан, поведение определяется по наличию реализованных алгоритмов в системе и может привести к неожиданным результатам.

Если вы укажете соль с SHA алгоритмом, но без rounds - то да, будет 5000. Если вы вообще не укажете соль, то алгоритм будет выбран системой (не PHP). Это может оказаться и blowfish.

Ясно. Но по дефолту функция все равно работает очень быстро. И наверняка blowfish тоже использует низкую цену, раз это общая тенденция.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
MiksIr
Цитата
Если ваш хостинг дает 5.2, но не дает хотя бы 5.3 - я бы бежал с такого хостинга.
Это бывает довольно трудно объяснить заказчику, особенно если у него на площадке несколько сайтов, не адаптированных под третью ветку. Хотя конечно, все течет, все меняется.



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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Вот, резюмируя все сломанные в этом топике копья, я нарисовал такую функцию-обертку:

<?php


define('IRB_SALT', 'ds$e2(dx#s');
define('IRB_LOGIC', 012331230);

/**
* Функция хэширования пароля
*
@param string $password - хэшируемый пароль
*
@param string $logic - алгоритм хэшировния
*
@param string $hash - соль или полностью хэш
*
@param int $round - количество раундов хэширования
*
@return string
*/

function cryptPassword($password, $logic = 3, $hash = '', $round = 10)
{
if(CRYPT_MD5 != 1)
{
trigger_error (__FUNCTION__ .'(). '
.'The system does not support md5 algorithm',
E_USER_WARNING);
return false;
}

$string = 'abcdefghijklmnopqrstuvwxyz0123456789#$%.!-=(){}[]\/';

if(empty($hash))
{
$string = str_pad('', 108, $string);
$string = str_shuffle($string);
$rand = round(microtime(true) - floor(microtime(true)), 2) * 100;
$salt = substr($string, $rand, 8);
}
else
{
preg_match('~(.*)([a-f0-9]{32})$~ui', $hash, $out);

if(empty($out[1]) && !empty($out[0]))
$salt = substr($out[0], 0, 8);
else
$salt = substr(preg_replace('~[^'. preg_quote($string) .']~ui',
'-',
$hash),
0, 8);
}

$hash = crypt($password, '$1$'. $salt);

$crypt = array( array(CRYPT_MD5, '$1$'),
array(CRYPT_BLOWFISH, '$2y$07$'),
array(CRYPT_SHA256, '$5$rounds=1000$'),
array(CRYPT_SHA512, '$6$rounds=1000$'),
);


$logic = (string)$logic;
$cnt = strlen($logic);
$round = ($round < 1) ? 1 : $round;
$round = ($round > 1000) ? 1000 : $round;

while($round--)
{
for($i = 0; $i < $cnt; $i++)
{
if(empty($crypt[$logic[$i]][0]) || $crypt[$logic[$i]][0] != 1)
$crypt[$logic[$i]][1] = '$1$';

preg_match("~[^\$]+$~i", $hash, $out);
$hash = substr($out[0], 0, 8);
$hash = crypt($password, $crypt[$logic[$i]][1] . $hash);
}
}


return $salt . md5($hash);
}
////////////////////////////////////////////////////////////////////////////
$password = 'test';
// Статическая соль теперь используется в первом аргументе.
// Динамическая по умолчанию будет сгенерирована автоматически.

echo 'Хэш пароля: '. cryptPassword($password . IRB_SALT, IRB_LOGIC);
echo '<br>';
// Для проверки не нужно вычленять соль, можно передать в функцию хэш полностью.
$hash = 'u)mlx#qtaba14a93c286193f0bd600d13db2a816';

if(cryptPassword($password . IRB_SALT, IRB_LOGIC, $hash) == $hash)
echo 'Добро пожаловать';


Подробности тут.

Теперь и моя концепция не нарушена и волки сыты.

Мленькая ремарка про стиль. Если это плохой стиль, если нельзя писать без скобок так
                if(empty($crypt[$logic[$i]][0]) || $crypt[$logic[$i]][0] != 1)
$crypt[$logic[$i]][1] = '$1$';
то интересно, почему в таком стиле написан Yii...

Вот самый первый по порядку класс (CApplication):
	public function run()
{
if($this->hasEventHandler('onBeginRequest'))
$this->onBeginRequest(new CEvent($this));
register_shutdown_function(array($this,'end'),0,false);
$this->processRequest();
if($this->hasEventHandler('onEndRequest'))
$this->onEndRequest(new CEvent($this));
}


Ведь за него сразу нужно расстреливать. :)

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.