Wer findet den Fehler bei der Entschlüsselung meines Schlüssels



  • Hallo,

    ich habe in meinem Programm eine einfache Verschlüsselung. Ich habe einen String voller Zahlen. Das ist der Schlüssel.

    String zahlen = "12345";

    In Key haben ich eine Kombinationen aus Zeichen und Zahlen, die ich gerne verschlüsseln möchte. Ich möchte alle Zahlen meines Schlüssels mit allen Zahlen des Key addieren.

    String Key = "AB36D8H3D2";

    for (int u = 1; u <= zahlen.Length(); u++)
       {
          // Erste zahl des Schlüssels mit der addiert werden soll
          int addval = StrToInt(zahlen[u]);
    
          for (int i = 1; i <= key.Length(); i++)
          {
             // Zweite zahl aus den key lesen
             String r = AnsiString(key[i]);
             int t = r.ToIntDef(-1);
    
             if (t != -1)
             {
                // wenn es eine zahl ist, die beiden zahlen addieren
                // die letzte ziffer des ergebnis wird dann in dem
                // key an position i ersetzt.
                int val = t + addval;
                String sval = AnsiString(val);
                String q = sval[sval.Length()];
                key[i] = q[1];
             }
          }
       }
    

    Nun möchte ich den daraus neu enstandenen key wieder zurückwandeln und habe folgenden Code:

    for (int u = 1; u <= zahlen.Length(); u++)
       {
          // Erste zahl des Schlüssels mit der addiert werden soll
          int addval = StrToInt(zahlen[u]);
    
          for (int i = 1; i <= key.Length(); i++)
          {
             // Zweite zahl aus den key lesen
             String r = AnsiString(key[i]);
             int t = r.ToIntDef(-1);
    
             if (t != -1)
             {
                // wenn es eine zahl ist, die beiden zahlen addieren
                // die letzte ziffer des ergebnis wird dann in dem
                // key an position i ersetzt.
                int val = t - addval;
                String sval = AnsiString(val);
                String q = sval[sval.Length()];
                key[i] = q[1];
             }
          }
       }
    

    Leider stimmt meine Entschlüsselung mit dem Vorgabewert nicht überein. Wer hat eine Idee?

    Torben



  • Hi,

    damit ihr meinen code testen erkönnte, erstellt einfach ein neues projekt und kopiert den folgenden code in ein button onclick rein:

    String zahlen = "12345";
    String key = "AB36D8H3D2";
    for (int u = 1; u <= zahlen.Length(); u++)
       {
          // Erste zahl des Schlüssels mit der addiert werden soll
          int addval = StrToInt(zahlen[u]);
    
          for (int i = 1; i <= key.Length(); i++)
          {
             // Zweite zahl aus den key lesen
             String r = AnsiString(key[i]);
             int t = r.ToIntDef(-1);
    
             if (t != -1)
             {
                // wenn es eine zahl ist, die beiden zahlen addieren
                // die letzte ziffer des ergebnis wird dann in dem
                // key an position i ersetzt.
                int val = t + addval;
                String sval = AnsiString(val);
                String q = sval[sval.Length()];
                key[i] = q[1];
             }
          }
       }
    Caption = key;
    
    // entschlüsselm
    for (int u = 1; u <= zahlen.Length(); u++)
       {
          // Erste zahl des Schlüssels mit der addiert werden soll
          int addval = StrToInt(zahlen[u]);
    
          for (int i = 1; i <= key.Length(); i++)
          {
             // Zweite zahl aus den key lesen
             String r = AnsiString(key[i]);
             int t = r.ToIntDef(-1);
    
             if (t != -1)
             {
                // wenn es eine zahl ist, die beiden zahlen addieren
                // die letzte ziffer des ergebnis wird dann in dem
                // key an position i ersetzt.
                int val = t - addval;
                String sval = AnsiString(val);
                String q = sval[sval.Length()];
                key[i] = q[1];
             }
          }
       }
    
       ShowMessage(key);
    

    Der Caption des formulars und der inhalt der messagebox, sollte eigentlich den gleichen wert haben. irgendwas funtzt bei der entschlüsselung nicht richtig und ich kann den fehler einfach net finden.

    torben



  • Torben Schröder schrieb:

    Wer findet den Fehler bei der Entschlüsselung meines Schlüssels

    Ich weiss es! Ich weiss es! Ich weiss es:
    Du findest den Fehler selber, wenn du vom Wissen in diesem Artikel gebrauch machst...

    -junix


Anmelden zum Antworten