Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2016, 05:41   #11
igh0st
Форумчанин
 
Аватар для igh0st
 
Регистрация: 05.07.2010
Сообщений: 136
По умолчанию

Вот эта функция, что любопытно, отлично считает md5 для текстовых файлов в кодировке ANSI и UTF8 содержащие латинские и кириллические символы, но хеш бинарного файла или архива в Delphi и в php получается разный.

Код:
function DCMD5Hash(FileName: String): String;
var
  LBuffer: TBytes;
  LEncoding, DestEncoding: TEncoding;
  LFileStream: TFileStream;
  ByteString: RawByteString;
  LOffset: Integer;
  Hash: TDCP_md5;
  HashDigest: array of byte;
  i: Integer;
begin
  LEncoding:= nil;
  LFileStream := TFileStream.Create(FileName, fmOpenRead);
  try
    SetLength(LBuffer, LFileStream.Size);
    LFileStream.ReadBuffer(Pointer(LBuffer)^, Length(LBuffer));
    LOffset := TEncoding.GetBufferEncoding(LBuffer, LEncoding);
  finally
    LFileStream.Free;
  end;
  
  Hash := TDCP_md5.Create(nil);
  Hash.Init;
  Hash.Update(LBuffer[0], Length(LBuffer));
  SetLength(HashDigest,Hash.HashSize div 8);
  Hash.Final(HashDigest[0]);

  Result := '';
  for i := 0 to Length(HashDigest) - 1 do
    Result := Result + IntToHex(HashDigest[i], 2);

 Result := LowerCase(Result);
 
end;

Последний раз редактировалось igh0st; 04.03.2016 в 15:30.
igh0st вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MD5 Хеш файла men232 Visual C++ 1 13.01.2012 19:53
[C#] Вычисление хеш суммы MD5 JonMagon Помощь студентам 2 26.08.2011 10:59
Различие MD5 Delphi и MD5 PHP Viteef Общие вопросы Delphi 14 09.02.2011 11:53
Строку в MD5-hash если Строка является MD5-хешем... Человек_Борща Общие вопросы Delphi 0 13.04.2010 15:27
PHP MD5 и Delphi/C/C++ MD5 в чем отличие? Человек_Борща Общие вопросы Delphi 1 05.04.2010 20:18