Авторизация HTTP

При запросе защищенной паролем страницы/директории сервер возвращает код
ошибки 401 Unauthorized.
В полном виде ответ от сервера выглядит так:

HTTP/1.0 401 Unauthorized
Date: Mon, 28 Aug 2000 07:24:37 GMT
Server: SAMBAR 4.2
MIME-version: 1.0
Content-type: text/html
WWW-Authenticate: basic realm="Sambar Admin Login"

<xmp>
<HTML>
<HEAD>
<TITLE>Invalid Login</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK=#990033 VLINK=#990033 ALINK=#990033>
<TABLE BORDER=0 WIDTH=500 CELLPADDING=10 CELLSPACING=10>
<TR><TD BGCOLOR=#990033 ALIGN=LEFT>
<FONT SIZE=5 COLOR=#FFFFFF><B>Invalid Login</B></FONT>
</TR></TD>
<TR><TD>
<BR>
The username/password you provided is not valid. 
</TD></TR>
<TR><TD>
<BR>
<A HREF="http://www.sambar.com"><FONT SIZE=2>Powered by Sambar</FONT></A>
</TD></TR>
</TABLE>
</BODY>
</HTML>

После ввода логина и пароля серверу отправляется запрос:

GET /session/adminlogin?RCpage=/sysadmin/index.stm HTTP/1.1
User-Agent: Opera/4.0 (Windows 95;US)  [en]
Host: localhost
Accept: text/html, image/png, image/jpeg, image/gif, image/x-xbitmap, */*
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Authorization: Basic T3p6bWFuOjEyMzQ1Njc4OTA=
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers

значение Authorization получается следующим образом:
логин и пароль выстраиваются в одну строку и разделяются ":"
"ozzman:1234567890"

далее строка кодируется по три символа:

1. от a[1] берутся старшие 6 бит. a[1] shr 2;
далее выбирается символ из таблицы:
crypt[1]=table[a[1] shr 2];

2. от a[1] берутся последние два бита и сдвигаются на 4 влево- a[1] shl 4;
от a[2] берутся старшие 4 бита [a2] shr 4;
crypt[2]=table[((a[1] and 3) shl 4) or (a[2]  shr 4)];

3. от a[2] берутся младшие четыре бита и сдвигаются влево на 2 -
(a[2] and 0fh) shl 2;
от a[3] берутся старшие два бита.
crypt[3]=table[((a[2] and 0fh) shl 2) or (a[3] shr 6)];

4. от a[3] берутся младшие 6 бит - a[3] and 3fh;
crypt[4]=table[a[3] and 3fh];

table1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

Ozzman