Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   MD5Hash einer Datei ändern? (https://www.delphipraxis.net/202952-md5hash-einer-datei-aendern.html)

Koloss 28. Dez 2019 14:27

MD5Hash einer Datei ändern?
 
Hasllo, ich lese überall wie ich einen HD5Hash erzeugen kann oder von einer datei auslesen kann.
Aber ich finde nichts über den MD5Hash ändern einer Datei.

Verwende Delphi XE10.

jfheins 28. Dez 2019 14:37

AW: MD5Hash einer Datei ändern?
 
Ein solcher Hash berechnet sich aus dem Inhalt der Datei. Ändern sich die Bytes, ändert sich i.d.R. auch der Hash.
Man kann den Hash nicht ändern ohne den Inhalt zu ändern.

Aber um deine Frage präzise zu beantworten: Öffne die Datei in einem Editor deiner Wahl und füge ganz vorne ein "x" hinzu. Der Hash ist nun anders.

zeras 28. Dez 2019 19:10

AW: MD5Hash einer Datei ändern?
 
Zitat:

Zitat von jfheins (Beitrag 1454030)

Öffne die Datei in einem Editor deiner Wahl und füge ganz vorne ein "x" hinzu. Der Hash ist nun anders.

Oder ändere einfach einmal ein Byte in deiner Datei.

Koloss 8. Jan 2020 13:45

AW: MD5Hash einer Datei ändern?
 
Sorry, meines späten Feedback.

Das ich den Hash nicht einfach so ändern kann weis ich jetzt, da er sich errechnet.
Meine Frage war nicht ganz korrekt formuliert. Es geht eigentlich um RAR-Dateien und da ist scheinbar ein Hash gespeichert.

KodeZwerg 8. Jan 2020 13:47

AW: MD5Hash einer Datei ändern?
 
Eine Frage ist immer noch nicht klar definiert?

Koloss 8. Jan 2020 13:55

AW: MD5Hash einer Datei ändern?
 
Das wäre der Batch Code:
Code:
@echo off & setlocal
for %%a in ("%1*") do echo %2 >> %%a
Verstehe ihn leider nicht ganz
%1 = Pfad
%2 = neuer MD5Hash

Er nimmt alle Dateien in einem Ordner und ändert den Hash.
Hätte es gerne in Delphi umgesetzt. Hoffe das es jetzt ganz verständlich ist.

Dalai 8. Jan 2020 14:09

AW: MD5Hash einer Datei ändern?
 
Zitat:

Zitat von Koloss (Beitrag 1454629)
Er nimmt alle Dateien in einem Ordner und ändert den Hash.

Nö. Alles, was der Batchcode macht, ist an alle Objekte (Dateien+Verzeichnisse+Links+Junctions) im angegebenen Ort %1 den zweiten Parameter %2 (inkl. folgendem Leerzeichen) anzuhängen. Da sich dadurch der Inhalt der Dateien ändert, ist hinterher der Hash jeweils ein anderer. Gerade bei Archiven kann das aber dazu führen, dass sie kaputtgemacht werden, sich nicht mehr entpacken lassen; dann kommt es auf den Archivierer an, wie fehlertolerant der ist.

Damit ist aber trotzdem weiter unklar, mit welchen Parametern genau diese Batch gerufen wird. Davon abgesehen kann man Batches auch von einem Delphi-Programm aus aufrufen - Stichwort MSDN-Library durchsuchenShellExecuteEx.

Die Fragestellung bzw. welches Ziel eigentlich erreicht werden soll, ist zumindest mir immer noch unklar.

Grüße
Dalai

Neutral General 8. Jan 2020 14:15

AW: MD5Hash einer Datei ändern?
 
Ganz ehrlich: Was hast du vor? Was soll der Sinn davon sein?
Das ist alles kompletter Schwachsinn. Was ist dein Ziel?
Es gibt keinen Grund den Hash einer Datei ändern zu wollen. (Abgesehen davon, dass es wie gesagt auch gar nicht geht außer man ändert die Datei selbst).

Koloss 8. Jan 2020 14:54

AW: MD5Hash einer Datei ändern?
 
@Natural General: Über Sinn oder Unsinn, das las bitte mir über. Du brauchst doch hier nicht zu antworten wenn das für dich Schwachsinn ist.

@Dalai: Die Parameter habe ich oben beschrieben, 1=Pfad der Dateien und 2=MD5Hash
Die Batchdatei rufe ich eh schon in Delphi auf, das klappt eh. Wollte halt den Source in Delphi haben.

himitsu 8. Jan 2020 14:54

AW: MD5Hash einer Datei ändern?
 
Delphi-Referenz durchsuchenFindFirst/FindNext und dann in der Schleife jeweils > Delphi-Referenz durchsuchenAppend, Delphi-Referenz durchsuchenWrite und Delphi-Referenz durchsuchenClose.

oder in Neudephianisch:
Delphi-Quellcode:
for Filename in TDirectory.GetFiles(ParamStr(1), '*') do
  //TFile.WriteAllText(Filename, TFile.ReadAllText(Filename) + ParamStr(2));
  TFile.AppendAllText(Filename, ParamStr(2));
Und wie schon erwähnt wurde, ist soein Vorgehen natürlich nur für Textdateien halbwegs sinnvoll
und hat per se absolut nichts mit MD5 zu tun, außer dass sich natürlich der Hash jeder Datei ändert, wenn man deren Inhalt ändert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:27 Uhr.
Seite 1 von 4  1 23     Letzte »    

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