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 :: Вынести вывод шифра из функции

 PHP.SU

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


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

> Без описания
Nooo
Отправлено: 15 Апреля, 2012 - 19:44:20
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Февр. 2011  


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




Здравствуйте, подскажите как изменить вывод зашифрованной строки? сейчас вывод прописан в функции "code" И выглядит так "echo $key;"... как его вынести за приделы функции?

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. define('CRYPT_KEY','dPfsdfF95bfG4Wmls9J');
  3. function code($source) {
  4.         $key = CRYPT_KEY;
  5.         $s = "";
  6.  
  7.         // Открывает модуль
  8.         $td = mcrypt_module_open('des', '', 'ecb', '');
  9.         $key = substr($key, 0, mcrypt_enc_get_key_size($td));
  10.         $iv_size = mcrypt_enc_get_iv_size($td);
  11.         $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  12.                 echo $key;
  13.         // Инициализирует дескриптор шифрования и шифруем
  14.         if (mcrypt_generic_init($td, $key, $iv) != -1) {
  15.                 $s = mcrypt_generic($td, $source);
  16.                 mcrypt_generic_deinit($td);
  17.                 mcrypt_module_close($td);
  18.         }
  19.         return $s;
  20. }
  21.  
  22. function decode($source) {
  23.         $key = CRYPT_KEY;
  24.         $s = "";
  25.  
  26.         // Открывает модуль
  27.         $td = mcrypt_module_open('des', '', 'ecb', '');
  28.         $key = substr($key, 0, mcrypt_enc_get_key_size($td));
  29.         $iv_size = mcrypt_enc_get_iv_size($td);
  30.         $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  31.  
  32.         // Инициализирует дескриптор шифрования и дешифруем
  33.         if (mcrypt_generic_init($td, $key, $iv) != -1) {
  34.                 $s = mdecrypt_generic($td, $source);
  35.                 mcrypt_generic_deinit($td);
  36.                 mcrypt_module_close($td);
  37.         }
  38.         return $s;
  39. }
  40.  
  41. $string = "CodePassword";
  42. $code   = code($string);
  43. $decode = decode($code);
  44. echo trim($decode);
  45. ?>


Отредактировано модератором: OrmaJever, 15 Апреля, 2012 - 20:19:08
 
 Top
OrmaJever Модератор
Отправлено: 15 Апреля, 2012 - 20:23:53
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




ну раз return там уже есть, то можно передавать второй параметр по сылке.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. define('CRYPT_KEY','dPfsdfF95bfG4Wmls9J');
  3.  
  4. function code($source, &$key) {
  5.         $key = CRYPT_KEY;
  6.         $s = "";
  7.  
  8.         // Открывает модуль
  9.         $td = mcrypt_module_open('des', '', 'ecb', '');
  10.         $key = substr($key, 0, mcrypt_enc_get_key_size($td));
  11.         $iv_size = mcrypt_enc_get_iv_size($td);
  12.         $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  13.                 echo $key;
  14.         // Инициализирует дескриптор шифрования и шифруем
  15.         if (mcrypt_generic_init($td, $key, $iv) != -1) {
  16.                 $s = mcrypt_generic($td, $source);
  17.                 mcrypt_generic_deinit($td);
  18.                 mcrypt_module_close($td);
  19.         }
  20.         return $s;
  21. }
  22.  
  23. function decode($source) {
  24.         $key = CRYPT_KEY;
  25.         $s = "";
  26.  
  27.         // Открывает модуль
  28.         $td = mcrypt_module_open('des', '', 'ecb', '');
  29.         $key = substr($key, 0, mcrypt_enc_get_key_size($td));
  30.         $iv_size = mcrypt_enc_get_iv_size($td);
  31.         $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  32.  
  33.         // Инициализирует дескриптор шифрования и дешифруем
  34.         if (mcrypt_generic_init($td, $key, $iv) != -1) {
  35.                 $s = mdecrypt_generic($td, $source);
  36.                 mcrypt_generic_deinit($td);
  37.                 mcrypt_module_close($td);
  38.         }
  39.         return $s;
  40. }
  41.  
  42. $string = "CodePassword";
  43. $key = '';
  44. $code   = code($string, $key);
  45. $decode = decode($code);
  46. var_dump($key);
  47. echo trim($decode);
  48. ?>


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Nooo
Отправлено: 15 Апреля, 2012 - 20:39:21
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Февр. 2011  


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




мне нужно что бы он вывел то что выводит echo $key он выводит "dPfsdfF9"

Но после изменений он стал выводить " string(8) "dPfsdfF9" "

(Отредактировано автором: 15 Апреля, 2012 - 20:43:32)

 
 Top
OrmaJever Модератор
Отправлено: 15 Апреля, 2012 - 20:41:27
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




А что выводит echo $key?! Однако


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Nooo
Отправлено: 15 Апреля, 2012 - 20:43:03
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Февр. 2011  


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




он выводит "dPfsdfF9"
 
 Top
OrmaJever Модератор
Отправлено: 15 Апреля, 2012 - 20:53:03
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




Нуу... и чем отличается строка "dPfsdfF9" от строки "dPfsdfF9" ?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Nooo
Отправлено: 15 Апреля, 2012 - 20:57:01
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Февр. 2011  


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




нет, echo выводил верно dPfsdfF9 ,а после изменений он стал выводить string(8) "dPfsdfF9" (в кавычках выводит)...
 
 Top
avtor.fox
Отправлено: 15 Апреля, 2012 - 23:48:13
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




от. var_dump Вам и выводит string(8) "dPfsdfF9" Однако
 
 Top
OrmaJever Модератор
Отправлено: 15 Апреля, 2012 - 23:54:11
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




тю, ну это я же для дебага. Измените var_dump($key); на echo $key;


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 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