Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Experimente mit Python

Erzeugung eines Fingerabdrucks mit einer Hash-Funktion

Wir benutzen hier eine spezielle Python-Bibliothek, um zu einem Text eine Art Fingerabdruck zu erzeugen.

Der folgende Text sei gegeben.

Hallo Bob, was hast du heute Abend vor? Wir könnten ins Kino gehen. Alice

Der folgende Python-Dialog zeigt, wie man einen SHA-256-Fingerabdruck (dargestellt als Hexadezimalzahl) zum gegebenen Text erzeugt.

>>> from hashlib import sha256
>>> text = 'Hallo Bob, was hast du heute Abend vor? Wir könnten ins Kino gehen. Alice'
>>> fingerabdruck = sha256(bytes(text, 'iso8859-1')).hexdigest()
>>> fingerabdruck
'07a473db109f053332f46844b20640020f58bbaf48aacb1c96ae371d5b0b6746'

Diese Hexadezimalzahl soll als Fingerabdruck zum vorgegebenen Text dienen.

Aufgabe 1

(a) Erzeuge entsprechend einen digitalen Fingerabdruck zu verschiedenen vorgegebenen Texten. Überzeuge dich, dass der erzeugte Fingerabdruck immer dieselbe Größe hat.

(b) Ändere den Text geringfügig ab (z.B. durch Einfügen eines Leerzeichens) und beobachte, wie sich der digitale Fingerabdruck verändert.

(c) Hier ein digitaler Fingerabdruck zum Antworttext von Bob:

ED B5 72 B0 2A E1 AC 25 71 A9 89 F6 5E 90 EE FD 7F 2D C9 76 1E 7F A4 6F 51 C9 94 4B CA 70 27 0C

Kannst du den Text zu diesem Fingerabdruck rekonstruieren? Wer es schafft, kann uns (inf-schule@gmx.de) den Text per E-Mail zusenden.

(d) Versuche einmal, noch einen Text zu erzeugen, der den oben gezeigten Fingerabdruck hat.

ED B5 72 B0 2A E1 AC 25 71 A9 89 F6 5E 90 EE FD 7F 2D C9 76 1E 7F A4 6F 51 C9 94 4B CA 70 27 0C

(e) Begründe: Es muss verschiedene Texte geben, die den gleichen digitalen Fingerabdruck haben.

X

Fehler melden

X

Suche