md5sum

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

md5sum

Beitragvon jens » Donnerstag 17. November 2005, 10:38

Ich schreib mir gerade ein kleines Tool, welches md5 Summen von Dateien berechnen soll und diese auch in *.md5-Datei abspeichern soll.

Das ist ja kein Problem. Es gibt auch unter python/Tools/Scripts/md5sum.py ein fertige Variante.

Weiß jemand ob es bei den .md5-Dateien ein bestimmtes Format gibt??? Ein quasi Standart?

EDIT: Ich möchte den ConfigParser dazu verwenden, damit auch ein paar zusatzinfos platz haben...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Donnerstag 17. November 2005, 13:58

md5summe ein oder mehrere leerzeichen dateiname
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 17. November 2005, 14:07

Also ich nutzte den ConfigParser dazu, die Datei sieht dann so aus:

Code: Alles auswählen

[md5sum]
size = 141
md5sum = 1f2d9bbe5e3da433344da41c3c1fd607
mtime = 17 Nov 2005 10:06:45 +0000
filename = 01 - Leave In Silence.mp3


Die Angabe der Dateigröße (size) ist hilfreich, weil wenn die schon nicht stimmt, dann kann auch die MD5 summe nicht stimmen und muß somit für einen vergleich nicht neu berechnet werden ;)

Somit ist meine md5-Datei leider nicht allgemein Kompatibel. Ich könnte mir allerdings auch überlegen das ungefähr so zu machen:

Code: Alles auswählen

1f2d9bbe5e3da433344da41c3c1fd607 01 - Leave In Silence.mp3
#[md5sum]
#size = 141
#md5sum = 1f2d9bbe5e3da433344da41c3c1fd607
#mtime = 17 Nov 2005 10:06:45 +0000
#filename = 01 - Leave In Silence.mp3


Somit könnte es kompatibel zu anderen Programmen sein?!?!
Gibt es Kommentare in md5-Dateien???

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Donnerstag 17. November 2005, 14:16

jens hat geschrieben:Gibt es Kommentare in md5-Dateien???
Ich glaube nein
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Re: md5sum

Beitragvon mitsuhiko » Donnerstag 17. November 2005, 14:57

jens hat geschrieben:Weiß jemand ob es bei den .md5-Dateien ein bestimmtes Format gibt??? Ein quasi Standart?


OUCH. Das heißt Standard :evil:

Ja. Den Standard gibt es, der schaut so aus:

Code: Alles auswählen

^(.*?)\s+(.*?)$

group1 = md5 summe
group2 = dateiname

und der ist fix :)

Und nein, das mit der Dateizeit ist eine schlechte Idee, weil ich kann eine Datei touchen und dann ist die Zeit anders, aber der Inhalt gleich.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Re: md5sum

Beitragvon jens » Donnerstag 17. November 2005, 15:00

blackbird hat geschrieben:Und nein, das mit der Dateizeit ist eine schlechte Idee, weil ich kann eine Datei touchen und dann ist die Zeit anders, aber der Inhalt gleich.

Die Dateizeiten werden natürlich nicht herrangezogen um eine Aussage zu treffen, ob die Datei vom Inhalt her gleich oder unterschiedlich ist! Es wird nur ein Hinweis ausgegeben, wenn die Zeiten unterschiedlich sind.
Nur die Dateigröße muß exakt stimmen... Bei großen Dateien braucht man dann nicht erst die md5 Summe zu bilden, wenn die Dateigrößen unterschiedlich sind ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 17. November 2005, 16:25

So, das fertige Tool gibt's nun hier:
http://www.jensdiemer.de/Programmieren/ ... ets/md5sum

Noch eine Frage...

Wie kann man Farbige Ausgaben machen??? Mit curses???

Wenn z.B. die MD5 summe falsch ist, sollte die Zeile rot Dargestellt werden, damit sie besser auffällt...

OK, curses gibt's nicht unter Windoof... Ein schneller Hack:

Code: Alles auswählen

    def set_color(self, color):
        """
        ändert die Komplette Hintergrundfarbe
        """
        if sys.platform == "win32":
            if color=="red":
                os.system("color 4f")
            elif color=="blue":
                os.system("color 1f")


Gibt's da eine Entsprechung unter Linux?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Donnerstag 17. November 2005, 17:05

jens hat geschrieben:Gibt's da eine Entsprechung unter Linux?
man console_codes

In Grunde gehen alle ANSI-Steuersequenzen, wie damals unter DOS:

Code: Alles auswählen

print "\033[1;31mfett rot\033[5;35;46mUnterstrichenes Lila auf Türkies :-P\033[m back to normal"
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 17. November 2005, 17:18

jens hat geschrieben:Die Dateizeiten werden natürlich nicht herrangezogen um eine Aussage zu treffen, ob die Datei vom Inhalt her gleich oder unterschiedlich ist! Es wird nur ein Hinweis ausgegeben, wenn die Zeiten unterschiedlich sind.

Wenn ich etwas runterlade wird das Datum der Datei auf das aktuelle Datum gesetzt, nicht das datum was die Datei auf dem Server hat. Von dem hier macht das auch nicht so viel Sinn.

jens hat geschrieben:Wie kann man Farbige Ausgaben machen??? Mit curses???

Wenn z.B. die MD5 summe falsch ist, sollte die Zeile rot Dargestellt werden, damit sie besser auffällt...

OK, curses gibt's nicht unter Windoof... Ein schneller Hack:
Gibt's da eine Entsprechung unter Linux?

curses. Und WConIO unter Windows.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 17. November 2005, 18:05

@Joghurt: Danke für den Hinweis. Leider klappen die Esc.Sequenzen bei mir unter Windows nicht. Ich denke dazu muß man evtl. ansi.sys laden?!?!

Da ich das tool erstmal nur unter Windows verwende, bleibe ich erstmal bei dem was ich bisher habe...

@Leonidas: Allerdings ist WConIO ein zusätzlich zu installierendes Modul, oder??? Für mein kleines Mini-Tool ist das aber total übertrieben...

Generell wäre evtl. eine TK-Oberfläche nett... Aber da ich in TK noch nicht's gemacht hab, ist das viel zu Aufwändig für mich ;)

Btw. interessant wäre evtl. das "konvertieren" bestehender MD5-Dateien nach dem "offiziellen" Skrickmuster zu meiner Variante ;) Aber da hab ich z.Z. keine richtige verwendung für, deswegen lass ich das...


Vielleicht hat ja einer von euch interesse daran und bastelt ein wenig damit rum...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 17. November 2005, 18:25

jens hat geschrieben:@Joghurt: Danke für den Hinweis. Leider klappen die Esc.Sequenzen bei mir unter Windows nicht. Ich denke dazu muß man evtl. ansi.sys laden?!?!

Funktioniert unter "richtigen" Windows-Versionen (NT-Serien ohne DOS Ballast) nicht mehr.

jens hat geschrieben:@Leonidas: Allerdings ist WConIO ein zusätzlich zu installierendes Modul, oder??? Für mein kleines Mini-Tool ist das aber total übertrieben...

Ja, allerdings ist es recht klein, soweit ich weiß nur ein pyd-Modul.

jens hat geschrieben:Generell wäre evtl. eine TK-Oberfläche nett... Aber da ich in TK noch nicht's gemacht hab, ist das viel zu Aufwändig für mich ;)

Tk? Nicht nett! Komische Integration in Python (über mehrere Ecken, so zum Beispiel den Tcl-Interpreter), wenige Features (viele Widgets musst du selbstmachen oder irgendwo fertige suchen) und das Look and Feel passt weder zu Linux noch Windows (davon abgesehen ist es sowieso mies). Und dass alles, wenn es doch mindestens zwei gute Alternativen gibt: PyGTK und wxPython (es gäbe noch PyQt, aber das ist nicht auf aktuellem Stand von Qt4 und außerdem bekommst du da den GPL-Maulkorb aufgesetzt, sonst ist es auch gut).

jens hat geschrieben:Vielleicht hat ja einer von euch interesse daran und bastelt ein wenig damit rum...

Ich denke, ich kann dir ein Grundskelett von einer PyGTK und eine wxPy GUI-Basteln, wenn du magst.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 17. November 2005, 18:34

Naja, ich dachte an TK, weil es halt bei Python dabei ist und nicht weil es so toll ist ;)
Bei einem kleinen mini tool, wie das, möchte ich keinem zumuten irgendwas zusätzliches zu installieren (mir selber auch nicht :D )

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 17. November 2005, 19:29

jens hat geschrieben:Naja, ich dachte an TK, weil es halt bei Python dabei ist und nicht weil es so toll ist ;)

Ist es nicht. So habe ich bei mir Tcl/Tk komplett vom Rechner verbannt, weil es damit lauter Scherereien gab. Viele Linux-Distributionen haben auch noch ein extra python-tk Paket wo dann die ganzen Tk-Sachen drin sind.

jens hat geschrieben:Bei einem kleinen mini tool, wie das, möchte ich keinem zumuten irgendwas zusätzliches zu installieren (mir selber auch nicht :D )

Warum es dann in Python schreiben? Mit C oder Ocaml geht das doch genauso (da fällt mir ein, ich bin immer noch nicht dazu gekommen Ocaml zu lernen, zu viele interessante Python Sachen in letzter Zeit gefunden).
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Donnerstag 17. November 2005, 19:44

jens hat geschrieben:@Joghurt: Danke für den Hinweis. Leider klappen die Esc.Sequenzen bei mir unter Windows nicht.
Hab ich auch nie behauptet. Ich dachte, du wolltest nur wissen, wie das unter Linux geht und dann je nach Betriebssystem verschiedene "Einfärberoutinen" aufrufen.
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Donnerstag 17. November 2005, 21:38

Also ich finde ja das ganze ganz nett, aber ich sehe nur Nachteile zu einer originalen Implementation.
1.) die Zeiten sind sinnlose Werte, ändern sich leicht und haben keinen relevanten wert
2.) Dateigrößen ändern sich manchmal nicht und trotzdem ist die Datei verändert worden.
TUFKAB – the user formerly known as blackbird

Wer ist online?

Mitglieder in diesem Forum: Mephisto