XOR Verschlüsselung umwandeln



  • Hallo,

    ich habe ein kleines Problem.

    Ich versuche seit einiger Zeit eine XOR Verschlüsselung umzuwandeln.

    Und zwar habe ich auf meiner Webseite eine XOR Verschlüsselung mit PHP.

    Diesen Text würde ich nun gerne in C++ wieder umwandeln.
    Ich versuche das seit einiger Zeit aber irgendwie krieg ich das nicht hin. Vielleicht kann mir jemand helfen.

    Und zwar sieht mein PHP Code so aus:

    function crypt($string)
    {
    $text = "";
    $my_key = 0x39;
    
    for ($x = 0; $x < strlen($string); $x++)
    {
    
        $my_key = ord($string[$x]) ^ $my_key;
           $text .=  chr($my_key);
    
    }
    }
    

    Wie ist es nun möglich den damit verschlüsselten Text in C++ wieder zu entschlüsseln?

    Würde mich über jeden Tipp sehr freuen.

    inspector1



  • inspector1 schrieb:

    Diesen Text würde ich nun gerne in C++ wieder umwandeln.
    Ich versuche das seit einiger Zeit aber irgendwie krieg ich das nicht hin.

    zeig mal was du versucht hast.



  • Hi,

    also ich hatte das so versucht.

    string s = "VERSCHLÜSSELTERTEXT";
    string key ="0x37";
    char test[s.length()];
    char *res;
    strcpy(test,s.c_str());
    for(int x=0;x<s.length();x++)
    {
            key = int(test[x])^key;
    }
    

    Ich weiss das da auch noch die Zuweisung für die Ausgabe fehlt aber ich erhalte schon bei diesem Programm Compiler Fehlermeldungen. Und zwar erst bei der XOR Operation.

    Irgendwie komm ich nicht drauf wie ich das machen könnte.

    inspector1



  • std::string s = "VERSCHLÜSSELTERTEXT";
    int key = 0x37;
    for (int i = 0; i < s.length(); i++)
        s[i] ^= key;
    


  • Hallo,

    vielen Dank für die schnelle Antwort.

    Aber das Problem ist ja das der Key sich jedes Mal verändert. Also bei dem PHP Code nimmt er ja immer dann den vorherigen Key zum entschlüsseln. Es wird bei jedem Durchgang ein neuer Zugewiesen.

    inspector1



  • Ich meinte natürlich das beim PHP Code verschlüsselt wird. Und sich dabei der Key immer verändert.

    Das möchte ich ja nun mit C++ entschlüsseln

    inspector1



  • was soll das bedeuten? "immer verändert"? mach mal ein beispiel.



  • Hopps, hatte ich übersehen.
    Müsste so gehen schätze ich mal:

    std::string s = "VERSCHLÜSSELTERTEXT"; 
    int key = 0x37; 
    for (int i = 0; i < s.length(); i++) 
    {
        s[i] ^= key; 
        key ^= s[i];
    }
    


  • Hallo,

    vielen Dank. Es hat super funktioniert.

    Das ist echt eines der besten Foren die ich kenne.

    Nochmals vielen Dank für deine Hilfe.

    inspector1


Anmelden zum Antworten