|
|
|
| шифрую данные логина и пароля для автовхода пользователя в куках с помощю фукнции mcrypt_decrypt().
На локальной машине все работает и ошибок никаких не выдает, даже если одну или несколько или все куки стереть. Но на хостинге, периодически пишет в лог, вот такую ошибку:
PHP Warning: mcrypt_decrypt() [<a href='function.mcrypt-decrypt'>function.mcrypt-decrypt</a>]: The IV parameter must be as long as the blocksize in /www/start.php on line 34
Не могу понять откуда она берется. Подскажите кто знает. | |
|
|
|
|
|
|
|
для: tAleks
(08.02.2010 в 18:20)
| | Очень похоже на этот https://bugs.launchpad.net/ubuntu/+source/ldap-account-manager/+bug/121381 баг. Что-то подобное встречалось и для 4-й версии РНР. Решения мне не известны. К сожалению. Когда-то встречал такую штуку тоже, только баг был, на сколько я помню, безобидным - код свое дело делал, лишь сообщение об ошибке появлялось. С переходом на новую версию операционки все прошло. | |
|
|
|
|
|
|
|
для: tAleks
(08.02.2010 в 18:20)
| | а как Вы задаете Init Vector? | |
|
|
|
|
|
|
|
для: Trianon
(09.02.2010 в 00:16)
| | Так:
$alg = MCRYPT_CAST_256; $mode = MCRYPT_MODE_CBC;
$iv = mcrypt_create_iv(mcrypt_get_iv_size($alg, $mode), MCRYPT_RAND);
|
Потом его кодирую:
$iv = base64_encode($iv);
|
и в куку. | |
|
|
|
|
|
|
|
для: tAleks
(09.02.2010 в 14:50)
| | а на дешифрующей стороне? | |
|
|
|
|
|
|
|
для: Trianon
(09.02.2010 в 16:09)
| |
$iv = base64_decode($_COOKIE['iv']);
$alg = MCRYPT_CAST_256; $mode = MCRYPT_MODE_CBC;
$decrypt_email = trim(mcrypt_decrypt($alg, SECRET_CODE, base64_decode($_COOKIE['email']), $mode, $iv));
$decrypt_pass = trim(mcrypt_decrypt($alg, SECRET_CODE, base64_decode($_COOKIE['pass']), $mode, $iv));
|
И эта ошибка, вылетает, именно в этих двух строках, которые выделены жирным. Причем вылетает не всегда. Отследить закономерность не могу. | |
|
|
|
|
|
|
|
для: tAleks
(09.02.2010 в 20:00)
| | Так а кукис-то всегда жив?
Значение в нем всегда валидно? | |
|
|
|