AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Welcher Algo für Checksumme einer Datei
Thema durchsuchen
Ansicht
Themen-Optionen

Welcher Algo für Checksumme einer Datei

Ein Thema von kalmi01 · begonnen am 8. Sep 2005 · letzter Beitrag vom 9. Sep 2005
Antwort Antwort
kalmi01
(Gast)

n/a Beiträge
 
#1

Welcher Algo für Checksumme einer Datei

  Alt 8. Sep 2005, 11:08
Hallo,

ich möchte für Dateien eine Checksumme erstellen, um vergleichen zu können, ob 2 Dateien gleichen Namens auch identisch sind.
Die Checksumme der "Original-Datei" soll in einer Textdatei gespeichert werden, z.B.:
trallala.exe 367fd9
ups.bat d87

Anschliessend will ich die Checksummendatei abarbeiten und für die entsprechenden lokalen Files eine Checksumme ermitteln und mit der Hinterlegten vergleichen.
Das Verfahren muss eindeutig sein und schnell.
Schnell ist wichtig, da ca. 5000 Dateien gescannt werden müssen.
  Mit Zitat antworten Zitat
PMM

Registriert seit: 17. Feb 2005
101 Beiträge
 
#2

Re: Welcher Algo für Checksumme einer Datei

  Alt 8. Sep 2005, 11:43
Hallo Michael,
schau mal bei JEDI in der JCLMath.pas UNIT nach. Dort gibt es die CRC16 / CRC32 in verschiedenen Varianten.
Es ist dir schon klar, dass "eindeutig" hier nur bedeutet, das jeder Datei eine wohldefinierte CRC zugeordnet werden kann und nicht, dass garantiert ist, dass unterschiedliche Dateien auch garantiert unterschiedliche CRCs bekommen?
Also: unterschiedliche CRC bedeutet unterschiedliche Datei - aber gleiche CRC heisst nicht zwingend gleiche Datei!
Gruß PMM
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#3

Re: Welcher Algo für Checksumme einer Datei

  Alt 8. Sep 2005, 12:07
Wenn du 100% Garantie haben willst, musst du sie einlesen und mit einander vergleichen.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#4

Re: Welcher Algo für Checksumme einer Datei

  Alt 8. Sep 2005, 12:26
das stimmt, ist aber aus performancegruenden nich so toll. er brauch ja nur dateien gleicher groeße
direkt binaer vergleichen
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#5

Re: Welcher Algo für Checksumme einer Datei

  Alt 8. Sep 2005, 13:19
Hi,

Binärvergleich fällt gänzlich weg.
Wenn sich bei 5000 Dateien nur 1 geändert hat, kopier ich 1 und vergleiche ich 4999 mit gleicher Grösse oder Datum.
Da kann ich auch gleich alles kopieren.

Ca. 50 User melden sich (fast) gleichzeitg an.
Einige davon über ISDN/VPN.

Ich glaube, ich nehme SHA-1 Hashsumme her.
  Mit Zitat antworten Zitat
PMM

Registriert seit: 17. Feb 2005
101 Beiträge
 
#6

Re: Welcher Algo für Checksumme einer Datei

  Alt 9. Sep 2005, 15:15
Was immer du auch nimmst, das Problem bleibt gleich: Bei gleicher CRC/Hash/WasAuchImmer und gleichlangen Dateien, kann nur ein erweiterter Vergleich entscheiden, ob die Dateien wirlich gleich sind. Garantiert ist immer nur der umgekehrte Fall: Unterschiedliche CRC/Hash/Irgendwas bedeutet unterschiedliche Datei. Wenn dem nicht so wäre, hätte man ja den ultimativen "Zipper" gefunden (und neben bei noch die gesamte Informatik, nebst aller Randgebiete (Mathematik usw.) auf den Kopf gestellt...), da man ja jeder kurzen CRC/Hash/Irgendwas genau eine (auch noch beliebig lange..) Datei zuordnen könnte! Optimieren kann man nur die Wahrscheinlichkeit, das unterschiedlichen Dateien gleiche Kontrollsummen zugeordnet werden - vermeidbar ist dies nicht.
Gruß PMM
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#7

Re: Welcher Algo für Checksumme einer Datei

  Alt 9. Sep 2005, 15:21
Hallo PMM,

wichtig ist für mich, zu erkennen, wenn 2 Dateien (mit hoher Wahrscheinlichkeit) nicht identisch sind.
  Mit Zitat antworten Zitat
PMM

Registriert seit: 17. Feb 2005
101 Beiträge
 
#8

Re: Welcher Algo für Checksumme einer Datei

  Alt 9. Sep 2005, 17:32
Nicht identisch sind 2 Dateien (und zwar sicher), wenn ihre CS unterschiedlich ist. Da gibts keinen Zweifel. Die Annahme das 2 Dateien mit gleicher Checksumme inhaltsgleich sind ist theoretisch mit einer Wahrscheinlich von 1-(2^n/2^(m*8 )) n=Länge der CRC in Bit, m=mittlere Dateilänge in Byte) falsch, wenn ich mich noch recht erinnere (ist verdammt lang her). Praktisch ist es schwer abzuschätzen, da man die theor. möglichen 2^(m*8 ) Dateien natürlich nicht annährend wirklich ausschöpft und unkalr ist, wie der gewählte CS Algor. die möglichen 2^n CS-Werte auf den Bereich der möglicherweise vorkommenden Dateiinhalte verteilt.
Gruß PMM
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:14 Uhr.
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