php 5.6 Notice: crypt(): No salt parameter was specified

G-and-Y
На сайте с 29.06.2013
Offline
156
3942

Появилась такая ошибка

Notice: crypt(): No salt parameter was specified. You must use a randomly generated salt and a strong hash function to produce a secure hash. in

Строчка на которую ругается

$str .= str_shuffle(preg_replace('#[^0-9a-zA-Z]#', '', crypt(uniqid(mt_rand(), true))));

Как правильно переписать эту строку?

Абузо-устойчивые впс в Нидерландах от 5$/мес (https://cp.inferno.name/aff.php?aff=2991)
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#1

да забейте, это просто говориться что если нет соли то функции менее стойкая.

Или

можете добавить crypt второй параметр какой-нибудь набор символов

---------- Добавлено 20.04.2016 в 18:08 ----------

А зачем вам именно crypt??

Там выбор метода зависит от соли. Если хотите крутой хэш, тогда:

hash('sha512', $str);

вам в помощь.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
W
На сайте с 09.04.2013
Offline
46
#2

LEOnidUKG, все верно написал.Однако понимая ,что решение должно быть уже вчера отвечаю на вопрос:

G-and-Y:
Как правильно переписать эту строку?


$str .= str_shuffle(preg_replace('#[^0-9a-zA-Z]#', '', crypt(uniqid(mt_rand(), true),'9mYNZRt4pVb9xH9Vm5zTsh52')));
G-and-Y
На сайте с 29.06.2013
Offline
156
#3

LEOnidUKG, webjey, спс, помогло!

Рас пошла такая пьянка, подскажите еще с одной ошибкой

preg_replace_callback(): Requires argument 2, 'parseGtr('\1')', to be a valid callback in
preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in

Ругается на строчки


$text = preg_replace("#\[gametrailers:$uid\](.*?)\[/gametrailers:$uid\]#sie", "parseGtr('\\1')", $text);


$text = preg_replace("#\[youtube:$uid\](.*?)\[/youtube:$uid\]#sie", "AutoParseYoutubeLink('\\1')", $text);

Как их переписать?

W
На сайте с 09.04.2013
Offline
46
#4
G-and-Y:
Как их переписать?


$text = preg_replace_callback("#\[gametrailers:$uid\](.*?)\[/gametrailers:$uid\]#si", function($matches){ return parseGtr($matches[1]); }, $text);
$text = preg_replace_callback("#\[youtube:$uid\](.*?)\[/youtube:$uid\]#si", function($matches){ return AutoParseYoutubeLink($matches[1]); }, $text);
G-and-Y
На сайте с 29.06.2013
Offline
156
#5

webjey, блин делал так же только букву е не убирал \]#sie",

Спасибо большое, работает!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий