информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаАтака на InternetЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Китайский прорыв из ESXi 
 С наступающим 
 libmdbx => MithrilDB 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
вот ещё бы алгоритм шифрования подкинул бы ктонить 18.12.01 15:37  Число просмотров: 1365
Автор: XR <eXtremal Research> Статус: The Elderman
<"чистая" ссылка>
Вот кусок из oops на эту тему
#define       BASE64_VALUE_SZ   256
int           base64_value[BASE64_VALUE_SZ];
unsigned char alphabet[64] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
void
base_64_init()
{
int i;

    for (i = 0; i < BASE64_VALUE_SZ; i++)
        base64_value[i] = -1;

    for (i = 0; i < 64; i++)
        base64_value[(int) alphabet[i]] = i;
    base64_value['='] = 0;

}

char*
base64_encode(char *src) {
int             bits, char_count, len;
char            *res, *o_char, *lim, *o_lim;
unsigned char   c;

    if ( !src ) return(NULL);
    len = strlen(src);
    lim = src+len;

    res = xmalloc((len*4)/3+4, "base64_encode(): 1");
    if ( !res )
        return(NULL);
    o_char = res;
    o_lim  = res + (len*4)/3 + 1 ;
    char_count = 0;
    bits = 0;
    while ( (src < lim) && (o_char < o_lim) ) {
        c = *(src++);
        bits += c;
        char_count++;
        if (char_count == 3) {
            *(o_char++) = alphabet[bits >> 18];
            *(o_char++) = alphabet[(bits >> 12) & 0x3f];
            *(o_char++) = alphabet[(bits >> 6) & 0x3f];
            *(o_char++) = alphabet[bits & 0x3f];
            bits = 0;
            char_count = 0;
        } else {
            bits <<= 8;
        }
    }
    if (char_count != 0) {
        bits <<= 16 - (8 * char_count);
        *(o_char++) = alphabet[bits >> 18];
        *(o_char++) = alphabet[(bits >> 12) & 0x3f];
        if (char_count == 1) {
            *(o_char++) = '=';
            *(o_char++) = '=';
        } else {
            *(o_char++) = alphabet[(bits >> 6) & 0x3f];
            *(o_char++) = '=';
            *(o_char) = 0;
        }
    }
    return(res);
}

char *
base64_decode(char *p)
{
char            *result;
int             j;
unsigned int    k;
int             c, base_result_sz;
long            val;

    if (!p)
        return NULL;

    base_result_sz = strlen(p);
    result = xmalloc(base_result_sz+1,"base64_decode(): 1");

    val = c = 0;
    for (j = 0; *p && j + 3 < base_result_sz; p++) {
        k = (int) *p % BASE64_VALUE_SZ;
        if (base64_value[k] < 0)
            continue;
        val <<= 6;
        val += base64_value[k];
        if (++c < 4)
            continue;
        result[j++] = (char) (val >> 16);
        result[j++] = (val >> 8) & 0xff;
        result[j++] = val & 0xff;
        val = c = 0;
    }
    result[j] = 0;
    return result;
}



---
<programming>
[Net] Авторизация на MS Proxy 16.12.01 13:38  
Автор: YURICH Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Как авторизоваться на MS Proxy server?
т.е. какой запрос надо дать серваку?
nichego ne ponyatno. popodrobnee opishi 17.12.01 00:55  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
nichego ne ponyatno. popodrobnee opishi 17.12.01 09:21  
Автор: YURICH Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Объясняю подробнее:
открываю я значит сокет с проксиком и перед тем как сказать ему GET мне такую-то страничку, я должен авторизоваться...
дык вот что ему нужно послать для этого...
слышал про какую-то байсик-авторизацию...
nichego ne ponyatno. popodrobnee opishi 17.12.01 15:06  
Автор: XR <eXtremal Research> Статус: The Elderman
<"чистая" ссылка>
> Объясняю подробнее:
> открываю я значит сокет с проксиком и перед тем как сказать
> ему GET мне такую-то страничку, я должен авторизоваться...
> дык вот что ему нужно послать для этого...
> слышал про какую-то байсик-авторизацию...

Авторизация идет не перед а прямо в GET запросе (каждом)
как отдельное поле HTTP заголовка
вот пример HTTP запроса:

GET http://www.server.com HTTP/1.1
Proxy-Authorization: Basic <user:pass - закодированные в base64>

- скобок <> разумеется не нужно
вот ещё бы алгоритм шифрования подкинул бы ктонить 18.12.01 13:16  
Автор: YURICH Статус: Незарегистрированный пользователь
<"чистая" ссылка>
вот ещё бы алгоритм шифрования подкинул бы ктонить 18.12.01 15:37  
Автор: XR <eXtremal Research> Статус: The Elderman
<"чистая" ссылка>
Вот кусок из oops на эту тему
#define       BASE64_VALUE_SZ   256
int           base64_value[BASE64_VALUE_SZ];
unsigned char alphabet[64] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
void
base_64_init()
{
int i;

    for (i = 0; i < BASE64_VALUE_SZ; i++)
        base64_value[i] = -1;

    for (i = 0; i < 64; i++)
        base64_value[(int) alphabet[i]] = i;
    base64_value['='] = 0;

}

char*
base64_encode(char *src) {
int             bits, char_count, len;
char            *res, *o_char, *lim, *o_lim;
unsigned char   c;

    if ( !src ) return(NULL);
    len = strlen(src);
    lim = src+len;

    res = xmalloc((len*4)/3+4, "base64_encode(): 1");
    if ( !res )
        return(NULL);
    o_char = res;
    o_lim  = res + (len*4)/3 + 1 ;
    char_count = 0;
    bits = 0;
    while ( (src < lim) && (o_char < o_lim) ) {
        c = *(src++);
        bits += c;
        char_count++;
        if (char_count == 3) {
            *(o_char++) = alphabet[bits >> 18];
            *(o_char++) = alphabet[(bits >> 12) & 0x3f];
            *(o_char++) = alphabet[(bits >> 6) & 0x3f];
            *(o_char++) = alphabet[bits & 0x3f];
            bits = 0;
            char_count = 0;
        } else {
            bits <<= 8;
        }
    }
    if (char_count != 0) {
        bits <<= 16 - (8 * char_count);
        *(o_char++) = alphabet[bits >> 18];
        *(o_char++) = alphabet[(bits >> 12) & 0x3f];
        if (char_count == 1) {
            *(o_char++) = '=';
            *(o_char++) = '=';
        } else {
            *(o_char++) = alphabet[(bits >> 6) & 0x3f];
            *(o_char++) = '=';
            *(o_char) = 0;
        }
    }
    return(res);
}

char *
base64_decode(char *p)
{
char            *result;
int             j;
unsigned int    k;
int             c, base_result_sz;
long            val;

    if (!p)
        return NULL;

    base_result_sz = strlen(p);
    result = xmalloc(base_result_sz+1,"base64_decode(): 1");

    val = c = 0;
    for (j = 0; *p && j + 3 < base_result_sz; p++) {
        k = (int) *p % BASE64_VALUE_SZ;
        if (base64_value[k] < 0)
            continue;
        val <<= 6;
        val += base64_value[k];
        if (++c < 4)
            continue;
        result[j++] = (char) (val >> 16);
        result[j++] = (val >> 8) & 0xff;
        result[j++] = val & 0xff;
        val = c = 0;
    }
    result[j] = 0;
    return result;
}



---
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach