Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Шифрование (пример из книги)
 
 автор: Expier   (26.07.2006 в 19:24)   письмо автору
 
 

Пример из книги:

<?php

 $user_password 
"asdasdas";
 
$key "key";
 
$user_crypt mcrypt_ecb(MCRYPT_3DES$key$user_passwordMCRYPT_ENCRYPT);
 echo 
"Зашифрованый пароль - ".$user_crypt;
 
$user_crypt mcrypt_ecb(MCRYPT_3DES$key$user_cryptMCRYPT_DECRYPT);
 echo 
"Рапсшифрованый пароль - ".$user_crypt;

?>


Выдаёт ошибку:

Warning: mcrypt_ecb() [function.mcrypt-ecb]: Attempt to use an empty IV, which is NOT recommend in C:\Program Files\Apache Group\Apache2\htdocs\Sea\tmp\test.php on line 5
Зашифрованый пароль - &#195;&#213;5&#226;&#241;}M
Warning: mcrypt_ecb() [function.mcrypt-ecb]: Attempt to use an empty IV, which is NOT recommend in C:\Program Files\Apache Group\Apache2\htdocs\Sea\tmp\test.php on line 7
Рапсшифрованый пароль - asdasdas


В чем проблема??
моя не понимать!!!!

   
 
 автор: cheops   (26.07.2006 в 22:13)   письмо автору
 
   для: Expier   (26.07.2006 в 19:24)
 

Это просто предупреждения о том, что такой подход уже успел устареть, можно просто их подавить
<?php
 $user_password 
"asdasdas"
 
$key "key"
 
$user_crypt = @mcrypt_ecb(MCRYPT_3DES$key$user_passwordMCRYPT_ENCRYPT); 
 echo 
"Зашифрованый пароль - ".$user_crypt
 
$user_crypt = @mcrypt_ecb(MCRYPT_3DES$key$user_cryptMCRYPT_DECRYPT); 
 echo 
"Рапсшифрованый пароль - ".$user_crypt
?>

но это не рекомендуется, лучше использовать новый подход
<?php
  $user_password 
"asdasdas"

  
$td mcrypt_module_open('tripledes''''ecb''');
  
$iv mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
  
$ks mcrypt_enc_get_key_size($td);

  
$key substr(md5("key"), 0$ks);

  
$iv mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);

  
mcrypt_generic_init($td$key$iv);
  
$user_crypt mcrypt_generic($td$user_password);
  echo 
$user_crypt."<br>";

  
mcrypt_generic_deinit($td);

  
mcrypt_generic_init($td$key$iv);
  
$user_decrypt mdecrypt_generic($td$user_crypt);
  echo 
$user_decrypt."<br>";

  
mcrypt_generic_deinit($td);
  
mcrypt_module_close($td);
?>

   
 
 автор: Expier   (27.07.2006 в 11:38)   письмо автору
 
   для: cheops   (26.07.2006 в 22:13)
 

О, спасибо!
Попробую разобраться!

   
 
 автор: STEVER   (16.08.2006 в 23:02)
 
   для: cheops   (26.07.2006 в 22:13)
 

Когда выполняется mcrypt_ecb(MCRYPT_3DES, $key, $user_crypt, MCRYPT_DECRYPT);
Апач вешается и говорит что во всем виновата библиотека, в чем может быть проблемма?

   
 
 автор: cheops   (17.08.2006 в 12:12)   письмо автору
 
   для: STEVER   (16.08.2006 в 23:02)
 

А версия Apache какая и где дело происходит под Windows или Linux?

   
 
 автор: STEVER   (18.08.2006 в 19:34)
 
   для: cheops   (17.08.2006 в 12:12)
 

Apache 2.0 ставился Денвером, под Windows.

   
 
 автор: cheops   (19.08.2006 в 12:05)   письмо автору
 
   для: STEVER   (18.08.2006 в 19:34)
 

А расширение php_mcrypt.dll подключено? Если память не изменяет даже в стандартной поставке оригинального PHP не все нужные библиотеки входят в состав - нужно догружать.

   
 
 автор: STEVER   (20.08.2006 в 13:05)
 
   для: cheops   (19.08.2006 в 12:05)
 

Конечно подключено.
Возможно я не правильно подключил, но делал все по инструкции: mycrypt в sistem32, php_mcrypt в extensions. ПХП.ини подключение этой библиотеки раскоментировал.

Самое интересное что шифрование работает нормально, а вот расшифровка выкидывает ошибку сервера.

   
 
 автор: cheops   (20.08.2006 в 18:05)   письмо автору
 
   для: STEVER   (20.08.2006 в 13:05)
 

Хм... у денвера помоему свои расширения, вы использовали именно их или прикручивали раширение от оригинального PHP?

   
 
 автор: STEVER   (21.08.2006 в 10:57)
 
   для: cheops   (20.08.2006 в 18:05)
 

не совсем понял вопроса.
вот пхп.ини от денвера:
.....
;extension=php_java.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
extension=php_mcrypt.dll - вот расскоментировал
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
......

   
 
 автор: cheops   (21.08.2006 в 13:33)   письмо автору
 
   для: STEVER   (21.08.2006 в 10:57)
 

А php_mcrypt.dll откуда брали?

   
 
 автор: STEVER   (21.08.2006 в 16:24)
 
   для: cheops   (21.08.2006 в 13:33)
 

Хороший вопрос, пол инета перерыл пока нашел. Точно сказать не могу.
Если дадите ссылочку на рабочую библиотеку, буду благодарен.

   
 
 автор: cheops   (22.08.2006 в 12:52)   письмо автору
 
   для: STEVER   (21.08.2006 в 16:24)
 

Боюсь что Denwer не будет работать с какой попало... нужно как минимум php_mcrypt.dll от той же версии PHP, которая в нём используется. У вас какая версия PHP?

   
 
 автор: STEVER   (22.08.2006 в 13:56)
 
   для: cheops   (22.08.2006 в 12:52)
 

4.3.10

   
 
 автор: STEVER   (23.08.2006 в 12:39)
 
   для: STEVER   (22.08.2006 в 13:56)
 

Все, я так понял больше мне никто ничего не скажет

   
 
 автор: cheops   (23.08.2006 в 13:08)   письмо автору
 
   для: STEVER   (23.08.2006 в 12:39)
 

Лучше скачать полный дистрибутив PHP 4.3.10 и взять библиотеку hp_mcrypt.dll от туда.

   
 
 автор: STEVER   (24.08.2006 в 14:34)
 
   для: cheops   (23.08.2006 в 13:08)
 

попробую

   
 
 автор: P@Sol   (21.08.2006 в 16:32)   письмо автору
 
   для: cheops   (26.07.2006 в 22:13)
 

а на сколько не рекомендуется использовать первый вариант? а то из 3 строчек стало 30 - как-то многовато:(

   
 
 автор: STEVER   (21.08.2006 в 21:28)
 
   для: P@Sol   (21.08.2006 в 16:32)
 

ну на сколько я понял для обеспечения криптостойкости алгоритма.
т.е. если ты шифруешь инфу, стоимость которой меньше 30 строчек, то первый вариант для тебя.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования