AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi THashSHA1 funktioniert nicht mehr in 10.2(.1)?
Thema durchsuchen
Ansicht
Themen-Optionen

THashSHA1 funktioniert nicht mehr in 10.2(.1)?

Ein Thema von Whookie · begonnen am 24. Aug 2017 · letzter Beitrag vom 25. Aug 2017
 
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
450 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: THashSHA1 funktioniert nicht mehr in 10.2(.1)?

  Alt 24. Aug 2017, 15:12
Vergleich doch mal, ob LFile.Size und Length(TBytes(LFile.Memory)) exakt gleich groß sind.
Das ist ja interessant, die sind tatsächlich unterschiedlich???!

Beispiel:
Dateigröße im System: 296759
LFile.Size: 296759
Length(TBytes(LF..)): 327684


Alternativ TBytesStream verwenden? Dann mit LFile.Bytes (von Typ TBytes) übergeben?
Mit TByteStream und

LSHA1.Update(LFile.Bytes, LFile.Size); Scheint es zu funktionieren, auch hier ist

Length(LFiles.Bytes) <> LFile.Size , aber soweit ich das verstehe entspricht Length(LFiles.Bytes) LFiles.Capacity und die kann natürlich größer sein!

Das erklärt dann auch gleich die Zahlen im ersten Fall! Ich nehme sogar an, das im ersten Fall (casten) ein TArray<Byte> erzeugt wird und die Daten dahin umkopiert werden, bevor die Updatemethode aufgerufen wird.

Bleibt noch festzuhalten, dass unter 10.1 die folgende Methode aufgerufen wurde:

Delphi-Quellcode:
procedure THashSHA1.Update(const AData: TBytes; ALength: Cardinal = 0);
var
  Len: Integer;
begin
  if ALength = 0 then
    Len := Length(AData)
  else
    Len := ALength;
  Update(PByte(AData), Len);
end;
Und in 10.2.1 diese:
Delphi-Quellcode:
procedure THashSHA1.Update(const AData; ALength: Cardinal);
begin
  Update(PByte(@AData), ALength);
end;
und mit dem PByte(@AData) greifen wir nicht mehr auf unseren Buffer zu, sondern auf den Speicher wo AData liegt...
Whookie

Software isn't released ... it is allowed to escape!

Geändert von Whookie (24. Aug 2017 um 15:26 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz