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

Форум PHP

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

 

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

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

тема: cram_md5
 
 автор: Bart Simpson   (21.12.2006 в 14:49)   письмо автору
 
 

Кто-нить знает функцию конвертирования в cram_md5?

   
 
 автор: Саня   (21.12.2006 в 15:49)   письмо автору
 
   для: Bart Simpson   (21.12.2006 в 14:49)
 

md5()

   
 
 автор: BArt Simpson   (21.12.2006 в 15:56)   письмо автору
 
   для: Саня   (21.12.2006 в 15:49)
 

Результаты разные
DSUjJgbOEm2qY - результат cram_md5
f54146a3fc82ab17e5265695b23f646b - результат md5

   
 
 автор: Keks   (21.12.2006 в 16:03)   письмо автору
 
   для: Саня   (21.12.2006 в 15:49)
 

А как ее использовать?

   
 
 автор: BArt Simpson   (21.12.2006 в 16:15)   письмо автору
 
   для: Keks   (21.12.2006 в 16:03)
 

ProFTPd настроин с модулем mysql Все логины пароли и директории для доступа лежат в базе, паролитам хранятся в cram_md5, нужна регистрация через WEB но функцию cram_md5 немогу найти

   
 
 автор: Саня   (21.12.2006 в 16:38)   письмо автору
 
   для: BArt Simpson   (21.12.2006 в 16:15)
 

<?
function cram_md5_response ($username$password$challenge) {
  
$challenge base64_decode($challenge);
  
$hash bin2hex(hmac_md5($challenge$password));
  
$response base64_encode($username " " $hash) . "\r\n";
  return 
$response;
}


function 
hmac_md5($data$key='') {
  if (
extension_loaded('mhash')) {
    if (
$key == '') {
      
$mhash mhash(MHASH_MD5,$data);
    } else {
      
$mhash mhash(MHASH_MD5,$data,$key);
    }
    return 
$mhash;
  }
  if (!
$key) {
       return 
pack('H*',md5($data));
  }
  
$key str_pad($key,64,chr(0x00));
  if (
strlen($key) > 64) {
      
$key pack("H*",md5($key));
  }
  
$k_ipad $key str_repeat(chr(0x36), 64) ;
  
$k_opad $key str_repeat(chr(0x5c), 64) ;
  
$hmac hmac_md5($k_opad pack("H*",md5($k_ipad $data)) );
  return 
$hmac;
}

   
 
 автор: BArt Simpson   (21.12.2006 в 17:10)   письмо автору
 
   для: Саня   (21.12.2006 в 16:38)
 

спасибо, попробую

   
 
 автор: BArt Simpson   (21.12.2006 в 17:30)   письмо автору
 
   для: Саня   (21.12.2006 в 16:38)
 

немного не понял, что такое $challenge и причём тут $user, если надо только $password обработать

   
 
 автор: Саня   (22.12.2006 в 00:03)   письмо автору
 
   для: BArt Simpson   (21.12.2006 в 17:30)
 

Вы, видимо, не совсем понимаете механизм работы CRAM-MD5.

Клиент должен отослать заголовок "AUTH CRAM-MD5", в ответ получит challenge-строку. На основе этой строки, пароля и логина при помощи функции cram_md5_response() строится ещё одна строка, которую нужно отправить на сервер. Если всё сделано правильно, сервер вернёт ответ "235 Authentication Successful" и дальше можно работать от имени $username.

   
Rambler's Top100
вверх

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