Python Problem?

Lamanini  12.03.2024, 22:57

Naja wo hakt es denn? Beim allgemeinen Plan? Bei der Implementation vom Knacken von bestimmten Teilen?

PcDesigner 
Fragesteller
 12.03.2024, 23:05

Das Problem ist, dass der code bei jedem Neuladen der Website ändert. Ich brauche eine Art Entschlüsslungsgenerator, um jede Art von Code in Sekunden zu entschlüsseln.

Lamanini  12.03.2024, 23:15

Ja, das brauchst du. Und das müsstest du jetzt (selber) schreiben. Wo hakt es dabei? Was für ein Problem hast du bei der Implementierung?

PcDesigner 
Fragesteller
 12.03.2024, 23:16

Ich kann es einfach nicht... und wäre sehr froh wenn mir jemand helfen könnte.

4 Antworten

4 Sekunden sind doch eine Ewigkeit, in der man locker alle Kombinationen ausprobieren kann. Allerdings ist die Formulierung „encoded with a randomized rotation cipher“ ziemlich schwammig.

Wenn ich Groß- und Kleinbuchstaben separat rotiere und alle anderen Zeichen belasse, liefert die Eingabe „iBa4ZDQE“ nur für rot-19 einen Base64-Code „bUt4SWJX“, der zu Asciizeichen „mKxIbW“ führt. Und das ergibt mit keiner Rotation ein bekanntes Wort.

Wie ist das Rotieren gemeint, und wie sieht die Wortliste aus? Ohne diese Information wirst Du keinen brauchbaren Code bekommen.

import base64

# Funktion zum Dekodieren des Base64-codierten Textes

def base64_decode(encoded_text):

  decoded_bytes = base64.b64decode(encoded_text)

  return decoded_bytes.decode('utf-8')

# Funktion zum Dekodieren des Textes mit einem zufälligen Rotationschiffre

def rotate_decrypt(ciphertext, rotation):

  decrypted_text = ""

  for char in ciphertext:

    if char.isalpha():

      shifted = ord(char) - rotation

      if char.islower():

        if shifted < ord('a'):

          shifted += 26

      elif char.isupper():

        if shifted < ord('A'):

          shifted += 26

      decrypted_text += chr(shifted)

    else:

      decrypted_text += char

  return decrypted_text

# Die verschlüsselten Wörter in Base64 codiert

encoded_words = [

  "iBa4ZDQE",

  "lEIvA3IKmNq2AwD=",

  "QNBzLfvGwy==",

  "kBXpAtjY",

  "aRefOD1xzSd=",

  "YUx5T3BDeEw=",

  "TPTbN2rWuOD6OQ9AyfbjMRS=",

  "g0MsU3kReH1l",

  "M0laKKTIpzM=",

  "v0ZePhxESOT5",

  "TPM1PicIzP4=",

  "fHaqUJaY",

  "oSTaE2JKMJF5JbvG",

  "iBnqWtXPF1neCNHJ",

  "rKLlJMHLr1LmKG==",

  "ye1tMAZCvfHiKhjFu1a=",

  "gHXmUIHABS==",

  "Z1ZpWmVMdEN2Umk=",

  "G0wdXEoClH=="

]

# Dekodierung des Base64-codierten Textes

decoded_words = [base64_decode(word) for word in encoded_words]

# Verschiedene Rotationen ausprobieren, um den richtigen Text zu finden

for rotation in range(1, 26):

  print(f"Rotation {rotation}: ", end="")

  for word in decoded_words:

    decrypted_word = rotate_decrypt(word, rotation)

    print(decrypted_word, end=" ")

  print()

PcDesigner 
Fragesteller
 12.03.2024, 23:00

Aber ich möchte nicht, dass es nur für diese wörter funktioniert.

0
iSc0field  13.03.2024, 10:20

Markiere das wenigstens als KI-Generiert...

2

Es gibt keine Dekodierung, die mit allem funktioniert.

Du schreibst dir einen Code, der Rotationschiffre entschlüsselt und einen, der base64-decodet.
Und dann noch eine Funktion, die prüft ob das Entschlüsselte korrekt ist

Dann baust du zwei Schleifen folgendermaßen:

for i in range(len(alphabeth)):
    decoded_0 = decode_rotation_cipher(text, i);
    decoded_1 = base64_decode(decoded_0);
    for j in range(len(alphabeth)):
        decoded_2 = decode_rotation_cipher(decoded_1, j);
        if check(decoded_2):
            return decoded_2;