Я загружаю файл, используя TIdHttp
, а затем проверяю его MD5-хеш, используя TIdHashMessageDigest5
, например:
http := TIdHttp.Create();
fs := TFileStream.Create('mydownload.bin', fmCreate);
md5 := TIdHashMessageDigest5.Create;
http.Get(url, fs);
http.Disconnect;
md5Hex := md5.HashStreamAsHex(fs).ToLower;
// expected: 39704b0e2c1d704906d16c42260f45ef
// actual: d41d8cd98f00b204e9800998ecf8427e
Однако, если я закрою TFileStream
и снова открою его, MD5 будет таким, как ожидалось:
http := TIdHttp.Create();
fs := TFileStream.Create('mydownload.bin', fmCreate);
md5 := TIdHashMessageDigest5.Create;
http.Get(url, fs);
http.Disconnect;
fs.Free;
fs := TFileStream.Create('mydownload.bin', fmOpenRead);
md5Hex := md5.HashStreamAsHex(fs).ToLower;
// expected: 39704b0e2c1d704906d16c42260f45ef
// actual: 39704b0e2c1d704906d16c42260f45ef
Почему это происходит?