Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Шифрование cookie

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Арикус
Отправлено: 20 Июня, 2016 - 20:02:11
Post Id



Гость


Покинул форум
Сообщений всего: 123
Дата рег-ции: Июнь 2015  
Откуда: Москва, Россия


Помог: 0 раз(а)




С простым текстом шифрование
PHP:
скопировать код в буфер обмена
  1. $per = 'Мороженое';
  2. $cryptPer = mcrypt_encrypt(MCRYPT_CAST_256, $cryptKey, $per, MCRYPT_MODE_CFB, $cryptVector);
  3. $decryptPer = mcrypt_decrypt(MCRYPT_CAST_256, $cryptKey, $cryptPer, MCRYPT_MODE_CFB, $cryptVector);
  4. echo $per.' - '.$cryptPer.' - '.$decryptPer;

работает нормально: "Мороженое - 8>&����7RN�n�.Ć - Мороженое"

Но с cookie
PHP:
скопировать код в буфер обмена
  1. if (...)
  2. {$cryptLogin = mcrypt_encrypt(MCRYPT_CAST_256, $cryptKey, $changeLogin[0], MCRYPT_MODE_CFB, $cryptVector);
  3. setcookie('login', $cryptLogin, time()+3600*24*365, '/', '.***.com', 1);}
  4. ...
  5. echo $_COOKIE['login'];
  6.  

при обновлении страницы выдаёт разные значения "���w�" "w�:��" "�ܻ��I"
хотя setcookie не активируется каждый раз, я проверил. Соответственно и расшифровка не проходит нормально.

(Отредактировано автором: 20 Июня, 2016 - 20:51:06)

 
 Top
Мелкий Супермодератор
Отправлено: 20 Июня, 2016 - 20:58:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




У меня есть некоторые очень большие сомнения, что в setcookie можно скармливать бинарные данные.
Попробуйте упаковать в base64 хотя бы.


-----
PostgreSQL DBA
 
 Top
Арикус
Отправлено: 21 Июня, 2016 - 11:39:07
Post Id



Гость


Покинул форум
Сообщений всего: 123
Дата рег-ции: Июнь 2015  
Откуда: Москва, Россия


Помог: 0 раз(а)




Мелкий пишет:
Попробуйте упаковать в base64 хотя бы.

PHP:
скопировать код в буфер обмена
  1. if (...)
  2. {$cryptLogin = base64_encode (mcrypt_encrypt(MCRYPT_CAST_256, $cryptKey, $changeLogin[0], MCRYPT_MODE_CFB, $cryptVector));
  3. setcookie('login', $cryptLogin, time()+3600*24*365, '/', '.***.com', 1);}
  4. ...
  5. echo $_COOKIE['login'].' - ';
  6. $_COOKIE['login'] = mcrypt_decrypt(MCRYPT_CAST_256, $cryptKey, base64_decode ($_COOKIE['login']), MCRYPT_MODE_CFB, $cryptVector);
  7. echo $_COOKIE['login'];
  8.  

Само значение cookie больше не отличается, но выдаёт разные расшифровки: "uXdaWP2b - �E�5 �" "uXdaWP2b - j�rMG". Я слабо знаком с принципами шифрования, потому могу лишь предположить, что дело в векторе
PHP:
скопировать код в буфер обмена
  1. $cryptVector = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB), MCRYPT_RAND);

который каждый раз произвольно генерируется. Но что с ним делать? Не сохранять же в тех же cookie.
 
 Top
Мелкий Супермодератор
Отправлено: 21 Июня, 2016 - 11:54:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Кстати, забыл вчера вот об этом милом факте: https://wiki.php.net/rfc/mcrypt-viking-funeral
RFC предлагает использовать openssl, предлагаю согласиться и использовать openssl_encrypt / openssl_decrypt


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB