Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Общие вопросы > MD5 PHP to Delphi |
Автор: salik 15.3.2014, 11:35 | ||||
Подскажите как код PHP переписать в Delphi. Вот упрощенный вариант кода
С первым хешем проблем не возникает. Проверяю так
Не понятно как пых обрабатывает сложение $hash . '123' перед выполнением md5, а потом толи он мдпячит строку, толи массив байт. |
Автор: DYUMON 16.3.2014, 13:23 |
кодировки смотри. в php и delphi разные кодировки поэтому и не сходятся хеши |
Автор: salik 16.3.2014, 16:24 | ||
Были бы разные кодировки, то первый хэш был кривой. |
Автор: DYUMON 18.3.2014, 13:56 |
циферкам пофиг кодировки |
Автор: salik 18.3.2014, 18:12 | ||
Скрипт PHP сохранен в кодировке UTF8 без бом. Делфи XE3 + жестко указываю в функции UTF8. Я не стал заморачиваться и эту работу оставил скрипту, а результаты забираю пост запросом. Однако вопрос открыт. |
Автор: DYUMON 19.3.2014, 21:38 | ||||
Делал так
цифры и латиницу нормально обрабатывает а вот кириллицу нет хотя нет нормально обрабатывает. только пробовал не на php на MySql запросом
выдало 608333adc72f545078ede3aad71bfe74 |
Автор: salik 20.3.2014, 08:41 | ||||
Молодец что попробовал, только это не совсем то что нужно получить на выходе. Вот ссылка на описани функции PHP http://www.php.net/manual/ru/function.md5.php. Обрати внимание на параметр True. Ты же предлагаешь получить результат вида 608333adc72f545078ede3aad71bfe74. После выполнения
Мы должны получить бинарную строку. Дальше мы должны выполнить следующее
Получаем бинарную строку второго уровня и т.д. Все это продемонстрировано в первом посте. |
Автор: DYUMON 20.3.2014, 08:56 | ||
ты просто добавляешь соль и все .
. в php это обьединение |
Автор: salik 20.3.2014, 09:24 | ||
Пробовал складывать
получаю '%�� (hÕÅH" ', как и в делфи, а надо плучить 'Áì²�Á6±�OïöÙ¥' Возможно я не правильно складываю массивы. Вот представьте есть два массива a,b : Tbytes. Надо их сложить, получим третий массив размер которого a + b. Значения в который записываются последовательно: сначала из массива a, потом b. Если я что не так пишу, то поправьте. |