Сам алгоритм MD5

vvsh

Новичок
Сам алгоритм MD5

Здрасте, если ли реализация на PHP самого алгоритма MD5?
заранее спасибо
 

fixxxer

К.О.
Партнер клуба
не думаю, что кто-то занимался столь бесполезным делом.

описание алгоритма есть в википедии, реализацию на си легко найти по "md5.c" и там ничего сложного для понимания.
 

KOLANICH

Новичок
PHP:
md5("чё хешировать");
это встроено в язык и работает очень быстро
я даже се браузер этим умудрился зафлудить
(в вайле постил хеши от сл числа в разл оттенках зелёного- получалось чёто вроде матрицы)
 

Фанат

oncle terrible
Команда форума
вроде, даже на этот форум как-то постили, какой-то безумный гений типа этого, как его... вальялы.
 

fixxxer

К.О.
Партнер клуба
кстати, никогда не понимал, зачем считать md5 в джаваскрипте.

какая разница, что перехватывать - плейнтекст или md5, если сервер полюбак перехваченное скушает?

разве что вариации на тему digest authentication - но и тут почему бы не воспользоваться возможностями, встроенными в браузер?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
fixxxer
разве не логично было бы отправить серверу уже хэш пароля, а не plain text?
 

fixxxer

К.О.
Партнер клуба
А в чем логика?

Единственный действительно логичный вариант, дающий преимуществно над плейнтекстом - сервер каждый раз отдает случайную строку (которую пишет в сессию), а на клиенте через md5 считается хэш от конкатенации с введенным паролем, который уже и шлется - но это изобретение велосипеда, примерно то же делает стандартая digest-авторизация.
 

Вурдалак

Продвинутый новичок
fixxxer
Пароль — штука вообще «интимная». Я бы за то, чтобы мой пароль на клиентской стороне хешировался... :)
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
fixxxer
логика мало ясна, но были сайты, которые строили авторизацию именно так. Видимо считали что ssl дорого, а md5 "перехватить" типа сложно. Пока сам думаю над этим вопросом.
 

Фанат

oncle terrible
Команда форума
fixxxer
именно, для реализайии дайджест авторизации
сервер посылает токен. клиент хэширует пароль с токеном вместе.
отсылает серверу, тот хэширует так же и сравнивает.
получается, вроде, вполне секурно.
не пользовать браузер - по тем же причинам, что и бейсик
 

pilot911

Новичок
Автор оригинала: fixxxer
А в чем логика?

Единственный действительно логичный вариант, дающий преимуществно над плейнтекстом - сервер каждый раз отдает случайную строку (которую пишет в сессию), а на клиенте через md5 считается хэш от конкатенации с введенным паролем, который уже и шлется - но это изобретение велосипеда, примерно то же делает стандартая digest-авторизация.
так и делают.. что не так?
 

Fortop

Новичок
сервер посылает токен. клиент хэширует пароль с токеном вместе.
отсылает серверу, тот хэширует так же и сравнивает.
получается, вроде, вполне секурно.
Не понял. Можно чуть подробнее?

Что хэширует сервер? Хэш токена и клиентского пароля? :D
А авторизоваться как?
 

fixxxer

К.О.
Партнер клуба
Да все так, но исключительно ради замены браузерного окна на красивые формочки заниматься реализацией криптоалгоритмов на js - это все таки, на мой взгляд, попахивает извращением. =)
 

fixxxer

К.О.
Партнер клуба
Автор оригинала: Fortop
Ну я так понимаю, надо как минимум хранить на сервере незахешированный пароль. Или как?
Не обязательно.

Можно на клиенте считать md5(secret . md5(password)), например.
 

weregod

unserializer
Автор оригинала: fixxxer
кстати, никогда не понимал, зачем считать md5 в джаваскрипте
например, валидация md5 введённой капчи на клиенте, естественно, на сервере валидируется сама капча, а не md5
 

fixxxer

К.О.
Партнер клуба
Учитывая, что заранее просчитать md5 для всех возможных комбинаций символов на капче вменяемой длины вовсе несложно, это не очень хорошая идея. :) Хотя длинная соль, уникальная на каждый запрос, тут поможет.

Но, опять же, аяксом куда проще =)
 
Сверху