MD5 ByteArray Отличается между AS3 и Java - PullRequest
1 голос
/ 12 сентября 2009

Я пытаюсь перенести библиотеку из Java в AS3, и я перешел к функции MD5. Я использую библиотеку MD5, найденную как часть проекта здесь: http://code.google.com/p/as3crypto/.

Я получаю правильную длину, и около половины значений верны. Ирония в том, что правильные значения также находятся в правильном месте. Только отрицательные значения неверны. Например, два хеша дают:

Java: [127, -16, 107, -93, -103, 1, 104, -5, -111, 12, -126, -91, 61, 32, -67, 61]
AS3: [127, 240, 107, 163, 153, 1, 104, 251, 145, 12, 130, 165, 61, 32, 189, 61]

Я убедился, что исходная строка, которую они хэшируют, точно такая же. Не уверен, что можно реализовать по-другому или что мне нужно изменить в моей собственной реализации.

Ответы [ 2 ]

4 голосов
/ 12 сентября 2009

-93 и 163 - это одно и то же

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

Подсказка: обратите внимание, что все ваши "неправильные" значения -(256 -("correct" value))?

0 голосов
/ 12 сентября 2009

Оказывается, проблема именно в том, что было упомянуто digitalross выше, но требовало, чтобы я пошел в класс MD5, проработал все экземпляры типа uint и переместил их в тип int.

Спасибо за указатель

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