Хеширование паролей в php и обрезание крайней плоти в США
14.01.2009 от
Андрей Зарубин
Сайты бывают весьма разные. Я это знал и раньше, но теперь понял, что сайты бывают ОЧЕНЬ ВЕСЬМА РАЗНЫЕ. Я написал очень весьма, не потому что я безграмотная скотина, нет. Это дабы подчеркнуть степень этой самой разности. Взять, к примеру, сайты для турагентств. Это же целый жанр в сайтостроении.
Нет в самом деле, мы сейчас делаем сайт для турагенства Вояж и я понимаю теперь, что такое СУБД на самом деле. Родительские и дочерние таблицы и так далее. Ахереть просто. Но с другой стороны в этом есть позитив, ведь склепав сайт для турагенства, можно уже предлагать его другим турагенствам, причем процесс разработки сократится до минимума (имеется в виду собственный движок). Так, имея движок для турагентств, тех же агентств недвиджимости и так далее, можно замутить нечто вроде субдомена demo.домен_студии/шаблон_сайта и показывать это клиенту. Я уже писал об этой идее, интересно использует ли кто-то такой подход?
Столкнулся вот с продвинутым хешированием паролей в php. Ну то есть стандартная ситуация, когда надо сохранить пароль в БД в виде хеша, но не md5, так как его нетрудно сломать. Нашел на php.net вот такое решение:
Хешируется методом sha1 с использованием salt. Если есть среди читателей умные php программеры, скажите какие тут минусы и плюсы.
{
if ($hDecode == NULL)
{
for ($i = 0; $i<16; $i++)
{
$hSalt = rand(33, 255);
$hRandomSalt .= chr($hSalt);
}
$hRandomSalt = hash($hMethod, $hRandomSalt);
}
else
{
$hRandomSalt = $hDecode;
}
if ($keepLength != NULL)
{
if ($hSLength > (strlen($hRandomSalt) - $minhPass))
{
$hSLength = (strlen($hRandomSalt) - $minhPass);
}
}
else if ($hSLength < 0)
{
$hSLength = 0;
}
$hLPosition = strlen($hString);
while ($hLPosition > $hSLength)
{
$hNumber = substr($hLPosition, -1);
$hLPosition = $hLPosition * ($hNumber/10);
}
$hLPosition = (integer)$hLPosition;
$hRPosition = $hSLength - $hLPosition;
$hFSalt = substr($hRandomSalt, 0, $hLPosition);
$hLSalt = substr($hRandomSalt, -$hRPosition, $hRPosition);
$hPassHash = hash($hMethod, ($hLSalt . $hString . $hFSalt));
if ($keepLength != NULL)
{
if ($hSLength != 0)
{
if ($hRPosition == 0)
{
$hPassHash = substr($hPassHash, $hLPosition);
}
else
{
$hPassHash = substr($hPassHash, $hLPosition, -$hRPosition);
}
}
}
return $hFSalt . $hPassHash . $hLSalt;
}
Хешируем пароль - obscure ($plain_password);
Проверяем password - obscure ($plain_password, $hashedPassword);
Далее по списку. Просматривая второй сезон гребаного сериала для женстчин “Секс в большом городе” от нехуй делать, я с удивлением узнал следующий факт: В США практически не осталось мужчин без обрезания. Если не верите, погуглите по данному вопросу. Объясняется это модой и гигиеной, но, по-моему, всё дело в мировом заговоре сионистов
__
Если вас интересует забавная продажа собак — вы попали по нужному адресу.
Революционная и необыкновенная очистка сточных вод передовыми методами.
Замучила параноя? Предлагаем контроль транспорта специально для вас.
azarubin.com