· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.NETWORKS —› Помогите разобраться с аутентификацией

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Июл 1, 2004 22:06:05

hi, решил тут простенький мэйлер накодить, который был бы с аутентификацией, но понять не могу как она проходит, пробовал по RFC на mail.ru залогиниться, но вечно вылазиет ошибка... Аутентификация проходит с логином и паролем кодироваными Base64, прога которая лежит на wasm'е неправильно кодирует, либо не так как надо... Написал свою с использованием либы - результат тот же...

Может у кого-нибудь уже есть реализация? Поделитесь plz если есть...

У кого какие мысли по этому поводу?


Дата: Июл 1, 2004 22:12:40

sourceforge.net --> Search --> Mail Client (or Mailer)
думаю, найдешь ответ там


Дата: Июл 1, 2004 22:35:05 · Поправил: hello_world

Если речь идет о SMTP то для аутентификации на mail.ru пароль вообще не нужен.

d:\>telnet smtp.mail.ru 25
220 mail.ru ESMTP Thu, 01 Jul 2004 22:33:27 +0400
helo 1
250 mx2.mail.ru Hello 1 [195.16.37.166]
mail from:<1@mail.ru>
250 OK
rcpt to:<hello_world@bk.ru>
250 Accepted
data
354 Enter message, ending with "." on a line by itself
test
.
250 OK id=1Bg6Ni-000JRZ-00
quit
221 mx2.mail.ru closing connection


Дата: Июл 1, 2004 22:47:59

2 hello_world: не нужен если helo, а попробуй ehlo подать, а потом auth login или auth plain...

интересен именно процесс аутентификации...


Дата: Июл 1, 2004 23:09:49 · Поправил: hello_world

Ну тогда давай свой код.
В аттаче моя ф-ция SendMail + откуда-то рипнутая base64_encode но там логин и пароль надо в зашифрованном виде передавать, а еще надо передать AUTH строку.
added: WSAStartup не забудь сделать.

1746555728__SendMail.inc


Дата: Июл 2, 2004 03:44:48

2 hello_world:
сенкс огромный за код...
а вот что я нарыл про аутентификацию:

Формируем строку PLAIN аутентификации (Netscape):
su-2.05a# printf 'ginger@example.ru\0ginger@example.ru\0my-secret-pass' | mmencode
Z2luZ2VyQGV4YW1wbGUucnUAZ2luZ2VyQGV4YW1wbGUucnUAbXktc2VjcmV0LXBhc3M=

su-2.05a# telnet localhost 25 Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 smtp.example.ru ESMTP Exim 4.20 Fri, 05 Sep 2003 13:59:25 +0400
ehlo localhost
250-smtp.example.ru Hello localhost.localdomain [127.0.0.1]
250-SIZE 10485760
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5
250 HELP
auth plain
334
Z2luZ2VyQGV4YW1wbGUucnUAZ2luZ2VyQGV4YW1wbGUucnUAbXktc2VjcmV0LXBhc3M=
235 Authentication succeeded
quit
221 smtp.example.ru closing connection
Connection closed by foreign host.

Идем дальше - формируем строку LOGIN аутентификации (Outlook):

su-2.05a# echo -n ginger@example.ru | mimencode -b

Z2luZ2VyQGV4YW1wbGUucnU=

su-2.05a# echo -n my-secret-pass | mimencode -b

bXktc2VjcmV0LXBhc3M=

su-2.05a# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 smtp.example.ru ESMTP Exim 4.20 Fri, 05 Sep 2003 14:01:25 +0400
ehlo localhost
250-smtp.example.ru Hello localhost.localdomain [127.0.0.1]
250-SIZE 10485760
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5
250 HELP
auth login
334 VXNlcm5hbWU6
Z2luZ2VyQGV4YW1wbGUucnU=
334 UGFzc3dvcmQ6
bXktc2VjcmV0LXBhc3M=
235 Authentication succeeded
quit
221 smtp.example.ru closing connection
Connection closed by foreign host.

Далее проверяем CRAM-MD5 аутентификацию (The Bat!), для этого выполним:

su-2.05a# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 smtp.example.ru ESMTP Exim 4.20 Fri, 05 Sep 2003 14:09:15 +0400
ehlo localhost
250-smtp.example.ru Hello localhost.localdomain [127.0.0.1]
250-SIZE 10485760
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5
250 HELP
auth cram-md5
334 PDI2NDAyLjEwNTY2MTE1NTVAc210cC5leGFtcGxlLnJ1Pg==
Z2luZ2VyQGV4YW1wbGUucnUgYjllN2Q1OTUxMGMxNjE0YzIwYjU4N2JkNmFkODk2MDI=
235 Authentication succeeded
quit
221 smtp.example.ru closing connection
Connection closed by foreign host.


Дата: Июл 2, 2004 03:48:10

Попробую переделать теперь свое все с твоей процей кодировки в base64, т.к. она отличается от той что есть здесь. Может твоя будет кодировать так как надо.


Дата: Июл 2, 2004 03:51:07

Stub
„прога которая лежит на wasm'е неправильно кодирует, либо не так как надо...“
Клевета!


Дата: Июл 2, 2004 19:42:36 · Поправил: Stub

2 Quantum:
Это так, попробуй закодировать любую строку через нее, потом эту же строку через тот же Total Commander, сравнить результаты... Прога добавляет пробел в конец строки которую надо закодировать, как я понял дело в нуле, т.к. строка передается как ASCIIZ, хотя я пробовал с помощью либы переделывать под себя, передавая строку без 0 - результат тот же...


Дата: Июл 2, 2004 19:47:07

2 hello_world:
Ok, твоя base64_encode работает как надо, хороший сорец. Сенкс еще раз огромный, терь останется только собрать все в кучу и ловить баги :)


Дата: Июл 3, 2004 03:33:12

Stub
А что за строка? У меня никаких лишних пробелов не наблюдается. Тестировал на разных виндах.


Дата: Июл 3, 2004 22:02:39

2 Quantum:
Сорри, ты меня наверное просто не понял... приведу пример:
кодируем testmail@mail.com с помощью твоей проги - результат dGVzdG1haWxAbWFpbC5jb20A
кодируем эту же строку с помощью либы hello_world - результат dGVzdG1haWxAbWFpbC5jb20=
Теперь с помощью того же Total Commander переводим обратно в ASCII - получаем разные строки, а именно в первом случае в конце строки пробел, во втором все нормально...


Дата: Июл 3, 2004 23:18:58

Stub
OK. Спасибо за пример! Бум думать.


Дата: Июл 6, 2004 02:21:43

Разобрался. Моя ошибка :-( Всё из-за нулевого байта. Исправил процедуру преобразования в base64. Буду тестировать и оптимизировать снова и скоро попрошу администраторов обновить либу на сайте. Надо ещё исправить процедуру обратного преобразования...

265015660__b64_enc.asm


Дата: Июл 7, 2004 21:41:42

Quantum
> Разобрался. Моя ошибка :-(

Надо было мне тебе раньше об этом сказать, ведь я уже читал упреки в адрес либы, но подумал мож они не умеют использовать ;-)

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.065