h1

Pythons Macht und Einfachheit

Juni 30, 2008

Heute bin ich im Openbook „Python“ von Galileo Computing (das ich übgrigens sehr empfehlen kann!) auf eine interessante Methode gestoßen in Python Listen zu erstellen. Diese Methode nennt sich List Comprehensions und dient dazu effizient mehrere Listen zu einer neuen Liste zu kombinieren. In diesem Kapitel bin ich auf folgendes Beispiel gestoßen:

>>> lst1 = [„A“,“B“,“C“]
>>> lst2 = [„D“,“E“,“F“]

>>>[(a,b) for a in lst1 for b in lst2]
[(‚A‘, ‚D‘), (‚A‘, ‚E‘), (‚A‘, ‚F‘), (‚B‘,’D‘), (‚B‘, ‚E‘), (‚B‘, ‚F‘), (‚C‘,’D‘), (‚C‘, ‚E‘), (‚C‘, ‚F‘)]

Dabei wird aus lst1 und lst2 eine neue Liste erstellt, die alle Kombinationen mit 2 Buchstaben aus beiden Listen enthält. Dabei fiel mir sofort auf, was man damit noch alles anstellen kann:

lst = „a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9“.split(‚,‘)
comb = [(a,b,c,d,e,f,g,h) for a in lst for b in lst for c in lst for d in lst for e in lst for f in lst for g in lst for h in lst]

Diese 2 Zeilen Python-Code erstellen alle 6-stelligen Ascii-Kombinationen. Wenn man den Code noch ein bisschen ausbaut und perfektioniert, hat man ein Programm, welches theoretisch alle Ascii-Kombinationen erstellt. Natürlich nur solange wie der Speicher das zulässt. Wenn man jetzt noch von jedem dieser Kombinationen den md5-hash erzeugt und in einer Datenbank speichert, hat man sich eine Möglichkeit geschaffen von einem md5-hash auf das Ascii-Passwort zu kommen. Allerdings hätte auch das seine Tücken, denn ein md5-hash verkörpert ja nicht nur ein Passwort sondern unendlich viele.

Allerdings geht es mir nicht darum zu zeigen, wie man einen md5-hash „knackt“, sondern ich will mit diesem Beispiel aufzeigen, wie mächtig Python ist.

2 Kommentare

  1. Das zweite Problem wäre wohl, dass man eine unwahrscheinlich große Datenbank mit hash’s hätte bei der jede Abfrage eine Ewigkeit dauern würde…😉


  2. Naja, das mit dem unendlich viele ist jetzt nicht so dass problem, solche sogenannten md5 Kollisionen kommen ja nur extrem selten vor. Aber die Datenbank wäre einfach gigantisch groß… Trotzdem finde ich könnte man ja mal ein paar Tests damit machen.

    Gruß, charlysan



Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: