|
|
|
| Кто-нить знает функцию конвертирования в cram_md5? | |
|
|
|
|
|
|
|
для: Bart Simpson
(21.12.2006 в 14:49)
| | md5() | |
|
|
|
|
|
|
|
для: Саня
(21.12.2006 в 15:49)
| | Результаты разные
DSUjJgbOEm2qY - результат cram_md5
f54146a3fc82ab17e5265695b23f646b - результат md5 | |
|
|
|
|
|
|
|
для: Саня
(21.12.2006 в 15:49)
| | А как ее использовать? | |
|
|
|
|
|
|
|
для: Keks
(21.12.2006 в 16:03)
| | ProFTPd настроин с модулем mysql Все логины пароли и директории для доступа лежат в базе, паролитам хранятся в cram_md5, нужна регистрация через WEB но функцию cram_md5 немогу найти | |
|
|
|
|
|
|
|
для: 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;
}
|
| |
|
|
|
|
|
|
|
для: Саня
(21.12.2006 в 16:38)
| | спасибо, попробую | |
|
|
|
|
|
|
|
для: Саня
(21.12.2006 в 16:38)
| | немного не понял, что такое $challenge и причём тут $user, если надо только $password обработать | |
|
|
|
|
|
|
|
для: BArt Simpson
(21.12.2006 в 17:30)
| | Вы, видимо, не совсем понимаете механизм работы CRAM-MD5.
Клиент должен отослать заголовок "AUTH CRAM-MD5", в ответ получит challenge-строку. На основе этой строки, пароля и логина при помощи функции cram_md5_response() строится ещё одна строка, которую нужно отправить на сервер. Если всё сделано правильно, сервер вернёт ответ "235 Authentication Successful" и дальше можно работать от имени $username. | |
|
|
|