Forum Webscript.Ru

Программирование => PHP => Тема начата: reLax[0x00] от 27 Мая 2006, 18:51:45

Название: Передача константы в функцию - я наверное туплю, но все-таки
Отправлено: reLax[0x00] от 27 Мая 2006, 18:51:45


function encrypt ($data, $cipher, $mode, $random, $key) {

                            srand((double) microtime() * 0xF4240);
                           $td = mcrypt_module_open($cipher, \'\',$mode, \'\');
                            $key = substr($key, 0, mcrypt_enc_get_key_size($td));
                            $iv_size = mcrypt_enc_get_iv_size($td);
                                 if ($iv_size!=0) {
                                     $iv = mcrypt_create_iv($iv_size, $random);
                                 }
                                     if (mcrypt_generic_init($td, $key, $iv) != -1) {
                                         $result = mcrypt_generic($td, $data);
                                         mcrypt_generic_deinit($td);
                                         mcrypt_module_close($td);
                                         $result = $iv.$result;
                                     }

                            return $result;

}

echo encrypt ("my string is too long as my dick", MCRYPT_BLOWFISH, MCRYPT_MODE_NOFB,  MCRYPT_DEV_URANDOM, "It\'s a very strong key. As strong as my girlfriend Natashka");



не работает ! не видит константы. Чето я не то делаю по ходу...Константы не назначены в скрипте-но они встроены в PHP.
Название: Передача константы в функцию - я наверное туплю, но все-таки
Отправлено: for_i_0 от 27 Мая 2006, 20:39:56
reLax[0x00]
что означает встроены в скрипте ?
какую ошибку выводит при вызове функции ?

если не видит константы то их скорее всего нет.
Название: Передача константы в функцию - я наверное туплю, но все-таки
Отправлено: reLax[0x00] от 27 Мая 2006, 21:10:50
for_i_0

чудеса :) заработало..только заработало после того как ты ответил, аура прям какая то :)

Но в принципе проблема в другом-смысл скрипта выдавать из массива случайный алгоритм, режим шифрования, ключ и тд. Там задача стоит в том что есть 3 сайта, и одна общая SQL БД куда сливаются заказы клиентов, естесственно транзакцию данных нужно шифрануть (HTTPS не разрешен) - потому я кидаю в начале SHA1 хеш в удаленный MySQL сервер, где в алгоритме заданы параметры шифрования информации, ключ и тд. Там проверяю уже на удаленном сервере валидна ли информация...потом шифрованную дату заношу в БД. Потом уже для дешифрации используется местная программа (там для бухов и тд) используя мой SHA1 и дату. Вообщем потом когда я сравниваю контрольную сумму md5 - она не сходится. Подозреваю тут константы. Уже и в ASCII  смотрел на NULL-bit символы в блоковых алгоритмах-не то все, там все правильно..странно. Может хостер виноват ? Я в on-line писал скрипты, дома возможности и желания Apache не было заново ставить после форматирования...

1. не встроены, говорю же. Это не мои константы define();
2. неправильный параметр
3. ww.php.net на тему mcrypt :)