Checksumme einer Datei mit Python berechnen (MD5 Hash, SHA-1 Hash und SHA-256 Hash) | #Python

preview_player
Показать описание

Inhalt 📚
Im Bereich der digitalen Forensik müssen u. a. Datenträger vor der eigentlichen Analyse gesichert und eine Kopie angefertigt werden. Nach einer Hausdurchsuchung muss z. B. von einem beschlagnahmten Gerät - dem Asservat - ein Zustand "gesichert" werden, der spätere (freiwillige oder unfreiwillige) Manipulationen erkennbar macht, um den Gegenstand vor Gericht als Beweismittel nicht unbrauchbar zu machen. Um z. B. Dateien auf einem Gerät mit einem fälschungssicheren Fingerabdruck zu versehen, kann man eine sog. Checksumme berechnen. Mit einer solchen Checksumme ist es möglich, die Integrität einer Datei nachzuweisen, d. h. Fremdeinwirkungen von außen auszuschließen. Die Integrität ist übrigens eines der drei bekannten Schutzziele der Informationssicherheit (Stichwort: CIA-Triade). Checksummen findest du bspw. auf Webseiten zum Download bestimmter Software. Wenn du dir z. B. eine Kali-Linux ISO herunterlädst, möchtest du nicht, dass auf dem Weg vom Webserver zu dir eine Manipulation stattfindet, die einen Schaden auf deinem PC verursacht. Nach dem Download kannst du für die ISO-Datei mit dem Python-Programm, das wir in diesem Video gemeinsam schreiben, die Checksumme dieser Datei berechnen und mit dem online zur Verfügung gestellten Wert vergleichen. Sind sie gleich, dann ist die Datei nicht manipuliert oder beschädigt worden. Falls doch, wurde sie auf dem Weg vom Server zu dir (absichtlich oder unabsichtlich, z. B. durch einen Fehler beim Download) verändert.

Einführung: 0:00
Hash-Funktionen: 1:10
Implementierung: 2:44
Beispiel: 3:29
Übungsaufgabe: 3:51
ENDE: 4:01

EQUIPMENT(*)

SUPPORT
► PayPal

SOCIAL MEDIA

Рекомендации по теме
Комментарии
Автор

Ey danke, auf das video hab ich lange gewartet <3

Leon-lwwd
Автор

Kannst du mal ein Video über verschiedene Hashfunktionen und deren Eigenschaften + Möglichkeiten zur Anpassung (Speicherfaktor, CPU-Faktor und Parallelfaktor) machen? Kann mir vorstellen, dass das auch andere interessiert.

jumpro
Автор

Schließ mich der Allgemeinheit an, prima Video! Davon kann noch mehr kommen!
#IT-Forensik
Danke dir!😉👍👍👍

johnwayne
Автор

Wir haben an der Uni gerade reguläre Ausdrücke. Hast du irgendetwas zu dem Thema geplant? Unser Professor macht das alles sehr formal mit wenigen Beispielen. Die Automatenumwandlung von NFA -> DFA habe ich erst so richtig nach deinem Video verstanden. Du machst das echt gut! Liebe Grüße

JonasGranel
Автор

Hallo Algorithmen Verstehen,
ich habe mich gefragt warum man dein video über Threema, Signal und Telegram nicht mehr finden kann. Vielleicht kannst du mir ja weiter helfen.

derrichtigetom
Автор

Ist es dadurch auch möglich sich vor Man-in-the-Middle-Angriff zu schützen bzw. sicher zu gehen, dass es kein man in the middle gibt? :)

divinus
Автор

in 1:37 sind glaub ich Theorie und Praxis verwechselt

testtest-xzec
Автор

Ich habe ein Problem, hierbei verwende ich die Pythonversion 3.9.1 auf Windows, der Code ist hier:


import hashlib
import os, time
from glob import *

def calculate_checksum(filename, algorithm):
with open(filename, 'rb') as file:
if algorithm == 'SHA-1':
return
if algorithm == 'SHA-256':
return
if algorithm == 'MD5':
return
if algorithm == 'Whirlpool':
return
def checksum():
filename = input('Bitte Namen oder Pfad eingeben \n ')
algorithm = input('Bitte Hashalogrithmus eingeben (SHA-1, SHA-256, MD5, Whirlpool \n')
ohash = input('Bitte richtigen Hashwert eingeben \n')
hashw = calculate_checksum(filename, algorithm)
if hashw == ohash:
print(f"'{ohash}' ist der richtige Hashwert \n Die Datei wurde also nicht beschädigt")
else:
print(f"'{ohash}' ist nicht der richtige Hashwert \n Die Datei wurde also beschädigt \n Als Wert ist {hashw} rausgekommen")

def checksum_folder(folder):
data = open('data.txt', "w")
for name in glob(folder):
try:
d = open(name)
except:
print(f"{name} konnte nicht geöffnet werden")
continue
data.write(f"Name: {name} \n")
stats = os.stat(name)
lasttime = time.strftime("%d.%m.%Y %H:%M:%S", time.localtime(stats[7]))
lastmod = time.strftime("%d.%m.%Y %H:%M:%S", time.localtime(stats[8]))
data.write(f" Grösse in Bytes: {stats[6]}\n")
data.write(f" Letzter Zugriff: {lasttime}\n")
data.write(f" Letzter Modifikation: {lastmod}\n")
checksum = calculate_checksum(name, 'SHA-1')
data.write(f" Checksumme: {checksum} \n \n")
d.close()
data.close


checksum_folder('H:/*')


Wie bekomme ich es hin, dass das Programm auch auf Ordner zugreifen kann bzw. dass es die Dateien in Unterordnern ebenfalls berücksichtigt?

pommfresser
Автор

Ich habe auf dem Thumbnail gelesen "Datei checkt Dumme" xD

mrdestruktiv