Проблем с php функция - decrypt_it

tyrlaka

New Member
Здравейте,
не съм сигурен, че пиша в правилния раздел (ако не е, моля да преместите темата), но имам един проблем с функцията decrypt_it
Използвам следния код:

PHP:
function decrypt_it($decrypt_this) { 	/*undo base64 encoding */	$temp = base64_decode($decrypt_this);	/* open the encryption module */	$td = mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_CBC, '');	/* work out iv size */	$iv_size = mcrypt_enc_get_iv_size($td);	/* split out the ciphertext from iv*/	$ciphertext = substr($temp, $iv_size);	$iv = substr($temp, 0, $iv_size);	/* get the key */	$ks = mcrypt_enc_get_key_size($td);	$key = substr(sha1("ZeroBG the Bulgarian Auto Market"), 0, $ks);	/* decrypt */	mcrypt_generic_init($td, $key, $iv);	$plaintext = mdecrypt_generic($td, $ciphertext);	/* tidy up */	mcrypt_generic_deinit($td);	mcrypt_module_close($td);	/* get rid of leading junk */	$temp = trim($plaintext);	return $temp;}

Но като я качих на хостинг-а, който с версия на PHP 5.3 ми изкарва този еррор:

PHP:
Warning: mcrypt_generic_init(): Iv size incorrect; supplied length: 1, needed: 8 in /home/site/public_html/inc/functions/functions.php on line 546 Warning: mdecrypt_generic(): An empty string was passed in /home/site/public_html/inc/functions/functions.php on line 547

Възможно ли е да бъде от версията на PHP или да иска някакви настройки от cpanel-а?

Също така използвам същия код в още 1 файл в папка "amfphp", там различен е само този ред:

PHP:
$td = mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_CBC, '');

Представлява това:

PHP:
$td = mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_CBC, ''$mysql = new mysql("localhost", "user", "password", "database"););

Възможно ли е нещо от 2-та кода да се обърква? Ако може някой да ми помогне да разреша този проблем.
 
От: Проблем с php функция - decrypt_it

ДА ти кажа честно от ПХП до ПХП има балкан разлика заради версиите.

Направи един груб пач на нещата и така го използвай. Направи си архив и коментирай промените!
 
От: Проблем с php функция - decrypt_it

За това написах версията на ПХП, защото прбвах на версия 5.5 и работи, но на 5.5 не ми работи друг скрипт, който е за версия 5.3, за това съм на 5.3 и питах дали е възможно това да е проблема и дали има някакъв варянт да го оправя?
 
От: Проблем с php функция - decrypt_it

На 64 битова версия излезе ето това:

PHP Warning: mcrypt_generic_init(): Iv size incorrect; supplied length: 3, needed: 8 in /home/peter/tezt/bla.php on line 16
PHP Warning: mdecrypt_generic(): An empty string was passed in /home/peter/tezt/bla.php on line 17

И направих В кода ето така:
//$iv_size = mcrypt_enc_get_iv_size($td);
$iv_size=8;
/* split out the ciphertext from iv*/

Виж как ентелегентно съм набил че iv_size е 8. Обаче не работи. Т.е. явно нямам данните за да го направя коректно.

Или ще трябва да ми дадеш повече код или просто вдигам ръце.
 
От: Проблем с php функция - decrypt_it

Добре, благодаря ти за отговора, ще пробвам и този вариант, ако не стане и така ще я премахна функцията. Тя не е наложителна, исках да пробвам да я вкарам в една система, но ако и така не стане нямам време да се занимавам повече с нея...Благодаря за помоща, може да заключите темата
 

Горе