Хеширование файлов MD5 - сопоставьте вывод Delphi с функцией PHP md5_file - PullRequest
2 голосов
/ 23 декабря 2009

В настоящее время я использую этот код для хеширования md5 в Delphi 7:

function MD5(const fileName : string) : string;
var
  idmd5 : TIdHashMessageDigest5;
  fs : TFileStream;
begin
  idmd5 := TIdHashMessageDigest5.Create;
  fs := TFileStream.Create(fileName, fmOpenRead OR fmShareDenyWrite) ;
  try
    result := idmd5.AsHex(idmd5.HashValue(fs)) ;
  finally
    fs.Free;
    idmd5.Free;
  end;
end;

и я пытаюсь получить вывод, аналогичный функции PHP

md5_file()

Я осмотрелся, и общие проблемы, кажется, заключаются в кодировании, а не в заполнении нулями, но я не знаю, как это сделать, используя TIdHashMessageDigest5, или они уже решены в функции.

Если у кого-то есть какие-либо функции, которые они используют для этого, это было бы очень признательно!

Или, возможно, способ изменить функцию php в соответствии с инди

Ответы [ 2 ]

6 голосов
/ 23 декабря 2009

Сравните ваши результаты с:

Если все, кроме одного, согласны с суммой, тогда вы знаете, где копать.

3 голосов
/ 23 декабря 2009

Ну, вы не указали номер версии Delphi, но если вы используете D2007 или более позднюю версию, вы можете прочитать эту статью.

...