Как стать автором
Обновить

Комментарии 17

в под-кат наверное надо убрать часть…
Да-да, Вы правы. Я вставлял после преамбулы хабракат но видимо он куда-то у меня потерялся во время последующего редактирования статьи.
Наверное вы ошиблись?

Проверяем:

rbablord5
9736a8436e10bf1991927f2ffc76c12

В то время как как правильный хэш: 9736a8436e10bf1991927f2ffc76c12.

9736a8436e10bf1991927f2ffc76c12
9736a8436e10bf1991927f2ffc76c12

Идентичные хеши.
Мне пхп на данную строку вывел «09736a8436e10bf1991927f2ffc76c12».
Что-то парсер хабра чудит сегодня. Хабракат пропал, а тэг
<b>0</b>
на странице не отображается, хотя когда я захожу в редактирование поста — он на месте.
потому что надо читать мануалы к функциям
php, java — bash например имеет своё мнение

$ echo «rbablord5» | md5sum; env | grep -i lang; uname -a
81e90d33e55d26ffc180ff1600e22744 — LANG=en_US.UTF-8
GDM_LANG=en_US.UTF-8
Linux opeg-desktop 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux
echo -n
echo -n «rbablord5» | md5sum; env | grep -i lang; uname -a
09736a8436e10bf1991927f2ffc76c12 — LANG=en_US.UTF-8
GDM_LANG=en_US.UTF-8
Linux opeg-desktop 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux

Прошу прощения за дезу
В md5 128 бит, 16 байт или 32 символа(0-f), если уж ява отбрасывает ведущий 0, почему бы не проверить длину и приписать его спереди, если нужно?
Да, все правильно, но отбрасывается не один ведущий ноль а все ведущие нули. Т.е. если в начале стоит несколько нулей — будут отброшены все. Значит нам уже нужен цикл чтобы дописать нужное количество нулей. Такой вариант реализации у меня тоже был но показался мне не очень красивым.
echo md5('Привет, мир!', true)

Читайте мануал.
Я в курсе, но вот ведь досада какая, разработчики IPB используют функцию md5 без этого параметра. И соответственно в базе пароли хранятся в виде 32-х символьной шестнадцатеричной строки…
java.security.MessageDigest md5 = java.security.MessageDigest.getInstance(«MD5»);
byte[] md5_byte_array = md5.digest(utf8_string.getBytes());
Прошу прощения за предыдущее сообщение, слишком рано ctrl+enter нажал… Мысль вот:

В реальном Java проекте, если ситуация будет отличаться от класса с единственным методом main(), перед тем, как вызывать md5.digest(...), нужно вызывать и md5.reset(). И кроме того, этот блок кода (вызов reset и digest) еще желательно и сделать synchronized.
И еще, вызывать utf8_string.getBytes() не кошерно.
Лучше так: utf8_string.getBytes(«UTF-8»).

Это же касается и new String(out).
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории