Forum Webscript.Ru
Программирование => PHP => Тема начата: 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.
-
reLax[0x00]
что означает встроены в скрипте ?
какую ошибку выводит при вызове функции ?
если не видит константы то их скорее всего нет.
-
for_i_0
чудеса :) заработало..только заработало после того как ты ответил, аура прям какая то :)
Но в принципе проблема в другом-смысл скрипта выдавать из массива случайный алгоритм, режим шифрования, ключ и тд. Там задача стоит в том что есть 3 сайта, и одна общая SQL БД куда сливаются заказы клиентов, естесственно транзакцию данных нужно шифрануть (HTTPS не разрешен) - потому я кидаю в начале SHA1 хеш в удаленный MySQL сервер, где в алгоритме заданы параметры шифрования информации, ключ и тд. Там проверяю уже на удаленном сервере валидна ли информация...потом шифрованную дату заношу в БД. Потом уже для дешифрации используется местная программа (там для бухов и тд) используя мой SHA1 и дату. Вообщем потом когда я сравниваю контрольную сумму md5 - она не сходится. Подозреваю тут константы. Уже и в ASCII смотрел на NULL-bit символы в блоковых алгоритмах-не то все, там все правильно..странно. Может хостер виноват ? Я в on-line писал скрипты, дома возможности и желания Apache не было заново ставить после форматирования...
1. не встроены, говорю же. Это не мои константы define();
2. неправильный параметр
3. ww.php.net на тему mcrypt :)