Комментарии 17
в под-кат наверное надо убрать часть…
Наверное вы ошиблись?
Проверяем:
rbablord5
9736a8436e10bf1991927f2ffc76c12
В то время как как правильный хэш: 9736a8436e10bf1991927f2ffc76c12.
9736a8436e10bf1991927f2ffc76c12
9736a8436e10bf1991927f2ffc76c12
Идентичные хеши.
Проверяем:
rbablord5
9736a8436e10bf1991927f2ffc76c12
В то время как как правильный хэш: 9736a8436e10bf1991927f2ffc76c12.
9736a8436e10bf1991927f2ffc76c12
9736a8436e10bf1991927f2ffc76c12
Идентичные хеши.
потому что надо читать мануалы к функциям
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 «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
В md5 128 бит, 16 байт или 32 символа(0-f), если уж ява отбрасывает ведущий 0, почему бы не проверить длину и приписать его спереди, если нужно?
echo md5('Привет, мир!', true)
Читайте мануал.
Читайте мануал.
java.security.MessageDigest md5 = java.security.MessageDigest.getInstance(«MD5»);
byte[] md5_byte_array = md5.digest(utf8_string.getBytes());
byte[] md5_byte_array = md5.digest(utf8_string.getBytes());
Прошу прощения за предыдущее сообщение, слишком рано ctrl+enter нажал… Мысль вот:
В реальном Java проекте, если ситуация будет отличаться от класса с единственным методом main(), перед тем, как вызывать md5.digest(...), нужно вызывать и md5.reset(). И кроме того, этот блок кода (вызов reset и digest) еще желательно и сделать synchronized.
В реальном Java проекте, если ситуация будет отличаться от класса с единственным методом main(), перед тем, как вызывать md5.digest(...), нужно вызывать и md5.reset(). И кроме того, этот блок кода (вызов reset и digest) еще желательно и сделать synchronized.
И еще, вызывать utf8_string.getBytes() не кошерно.
Лучше так: utf8_string.getBytes(«UTF-8»).
Это же касается и new String(out).
Лучше так: utf8_string.getBytes(«UTF-8»).
Это же касается и new String(out).
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как подружить MD5 в Java и PHP для UTF8 строк