46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
|
|
import hashlib
|
|
import json
|
|
|
|
# Funktion zum Berechnen der SHA-256-Checksumme
|
|
def calculate_checksum(data):
|
|
sha256 = hashlib.sha256()
|
|
sha256.update(str(data).encode('utf-8'))
|
|
return sha256.hexdigest()
|
|
|
|
# Funktion zum Lesen und Vergleichen der Checksumme in einer Datei
|
|
def read_and_compare_checksum(file_path, expected_checksum):
|
|
try:
|
|
with open(file_path, 'r') as file:
|
|
content = file.read()
|
|
# Suche nach der Zeile mit der Checksumme
|
|
checksum_line_start = content.find("// CODEGENERATOR_CHECKSUM:")
|
|
if checksum_line_start != -1:
|
|
# Extrahiere die Checksumme aus der Zeile
|
|
existing_checksum = content[checksum_line_start + len("// CODEGENERATOR_CHECKSUM:"):].strip()
|
|
# Vergleiche die Checksummen
|
|
if existing_checksum == expected_checksum:
|
|
return True
|
|
except FileNotFoundError:
|
|
pass # Datei existiert nicht, was nicht schlimm ist
|
|
|
|
return False
|
|
|
|
def read_and_compare_json_checksum(json_file_path, expected_checksum):
|
|
try:
|
|
with open(json_file_path, 'r') as json_file:
|
|
# Lade das JSON aus der Datei
|
|
data = json.load(json_file)
|
|
|
|
# Überprüfe, ob "codegenerator_checksum" im JSON vorhanden ist
|
|
if "codegenerator_checksum" in data:
|
|
existing_checksum = data["codegenerator_checksum"]
|
|
|
|
# Vergleiche die Checksummen
|
|
if existing_checksum == expected_checksum:
|
|
return True
|
|
except FileNotFoundError:
|
|
pass # Datei existiert nicht, was nicht schlimm ist
|
|
|
|
return False
|