Сравнение строк MD5 - PullRequest
       4

Сравнение строк MD5

1 голос
/ 27 октября 2011

У меня есть Java-код, куда я отправляю md5 через сокет для получения на другой стороне. Я принимаю пароль в качестве входа и создаю свой собственный md5 для проверки с md5, полученным через сокет для аутентификации.

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

1 Ответ

4 голосов
/ 27 октября 2011

MD5 - это byte[]. Это представление обычно шестнадцатеричная строка. На что посмотреть:

  • способ построения шестнадцатеричной строки должен быть таким же
  • убедитесь, что вы не используете new String(bytes). При этом используется кодировка по умолчанию, которая различается на разных компьютерах, и кодировка может не поддерживать некоторые байтовые значения.
  • буквы должны иметь одинаковый регистр (нижний / верхний)

Но вы не должны сравнивать представление. Вам следует сравнить байты: Arrays.equals(ar1, ar2)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...