Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Modulo-10 Prüfsumme eines Strings berechnen (https://www.delphipraxis.net/199947-modulo-10-pruefsumme-eines-strings-berechnen.html)

Andreas L. 7. Mär 2019 08:56

AW: Modulo-10 Prüfsumme eines Strings berechnen
 
Wenn der Algorithmus keine Rolle spielt kannst du z. B. das DelphiEncryptionCompedium (kostenlos) verwenden.

So einfach gehts:
Delphi-Quellcode:
uses
  DECHash, DECFmt;

...

procedure TForm11.Button1Click(Sender: TObject);
var
  SourceStr: String;
  DestStr: String;
begin
  SourceStr := 'Hallo Welt!';
  DestStr := THash_MD5.CalcBinary(SourceStr, TFormat_HEXL);
  ShowMessage(DestStr); // = 55243ecf175013cfe9890023f9fd9037
end;
Im Beispiel wird MD5 als Algorithmus verwendet. Das DEC unterstützt aber noch viele weitere.

Delphi-Quellcode:
  THash_MD2           
  THash_MD4           
  THash_MD5           
  THash_RipeMD128     
  THash_RipeMD160     
  THash_RipeMD256   
  THash_RipeMD320     
  THash_SHA        
  THash_SHA1         
  THash_SHA256       
  THash_SHA384   
  THash_SHA512     
  THash_Haval128   
  THash_Haval160     
  THash_Haval192   
  THash_Haval224       
  THash_Haval256 
  THash_Tiger    
  THash_Panama
  THash_Whirlpool
  THash_Whirlpool1 
  THash_Square  
  THash_Snefru128   
  THash_Snefru256 
  THash_Sapphire

Codehunter 7. Mär 2019 10:42

AW: Modulo-10 Prüfsumme eines Strings berechnen
 
Zitat:

Zitat von TigerLilly (Beitrag 1427150)
Das ist eine Sache, wo man die Hand heben sollte + laut "Problem" rufen sollte. Die Formel (so wie damals) zu implementieren ist ja nicht schwer + ein paar Sonderfälle abzufangen, auch nicht. ABER: Da können jetzt andere Daten als damals kommen. Und so etwas betrifft in der Regel nicht nur eine Stelle, sondern viele und ist ein Indiz für ein richtig gutes Problem.

Yeah, so ein Gefühl beschleicht mich langsam auch. Das Kernproblem ist, dass die Empfängermaschine (man wills gar nicht glauben) immer noch mit DOS läuft. Woraus folgt dass Unicode erstmal nach ANSI/Win1251 konvertiert werden muss. Reibungsverluste inklusive. Danach erst Modulo 10 Prüfsumme drauf legen. Mit Unicode mag Modulo 10 zwar rechnerisch auch funktionieren, muss aber aufgrund der Dateistruktur (hartcodierte Byte-Anzahlen) zwangsläufig in der Empfängermaschine krachen. Denn die bekäme weder die Prüfsumme auseinander dividiert noch die Daten richtig ausgelesen. Mit UTF-8 dito.

Davon abgesehen scheint meine Interpretation der Formel richtig zu sein. Insofern wäre die ursprüngliche Frage inzwischen beantwortet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:32 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz