XOR Verschlüsselung



  • kolbenfrsser schrieb:

    ich hätts halt gern so das ich den text den ich bei der verschlüsselung erhalte, einfach erneut verschlüsseln lass, mit dem selben key natürlich, und dann wieder den ursprünglichen text erhalte. aber ich weis nicht wie das geht.

    das macht XOR schon automatisch, (ab)b ist wieder a. dein problem ist, dass du die ge-xor-ten daten nicht mehr als text ansehen darfst. erst nach der decodierung wieder. übrigens ist XOR zur verschlüsselung nur gut, wenn der key sehr lang ist.
    🙂



  • ok.

    habe ich des so richtig verstanden? ich lese den text und den key als char ein. dann zeichenweise XOR dann als Hexziffern ausgeben.
    soweit so gut.
    aber wie kann ich dann beim entschlüsseln die Zahlen wieder eingebn?? wenn ich dann z.b. 34 eingeb (was im dezimal system 52 entspricht) dann speichert mir die scanf funktion die 3 (:= ascii 51) ins erste feld und die 4 (:= ascii 52) ins zweite feld. wird dann XOR gemacht kommt kauderwelsch dabei raus. hast du icq fricky?? . würd mich freuen wennst dich melden würdest.
    danke



  • kolbenfrsser schrieb:

    aber wie kann ich dann beim entschlüsseln die Zahlen wieder eingebn?? wenn ich dann z.b. 34 eingeb (was im dezimal system 52 entspricht) dann speichert mir die scanf funktion die 3 (:= ascii 51) ins erste feld und die 4 (:= ascii 52) ins zweite feld. wird dann XOR gemacht kommt kauderwelsch dabei raus.

    scanf kann auch hexzahlen einlesen (mit %x). aber benutz mal die suchfunktion des forums. hier gibt's bestimmt über 100 threads, bei denen es um hex-umwandlung geht. im prinzip musste die erste ziffer (0...f) in einen wert zwischen 0...15 umwandeln, dann mit 16 malnehmen, die zweite ziffer ebenfalls in 0...15 umwandeln und beides addieren. du kannst es auch ohne hex anstellen, dann kannst die daten z.b. binär in einem file speichern (aber sinnvoll ansehen nur mit 'nem hexeditor o.ä.). wenn du die daten sichbar brauchst, kannste auch 'base64' statt hex nehmen. das format ist aber etwas koplizierter.

    kolbenfrsser schrieb:

    hast du icq fricky??

    nee.
    🙂



  • Arbeite mit unsigned char bei der Codierung/Decodierung

    Die Daten sind doch eh binär gespeichert.

    Ob ASCII oder Int etc ist doch nur die Betrachtungsweise
    bzw Darstellung.

    Gruß,

    Andreas



  • Er möchte aber die verschlüsselten Zeichen geren wieder eingeben und entschlüsseln. Da ist es nicht egal, da du nicht alles eingeben kannst.



  • habs jetz hinbekommen. wenns jemand interessiert dann kann ichs gern per mail schreiben. jetz würd ich noch gern ein schmankerl einbauen und zwar muss ich jetz noch die Zahlen die der Pc beim verschlüsseln ausspuckt (über printf) abschreiben und beim entschlüsseln wieder per hand eingeben. kann mann die auch in eine datei schreiben und aus dieser wieder auslesen??
    wie funktioniert das oder wonach muss ich suchen??
    danke für euere hilfe.



  • IMHO kann man alle Zeichen über die nummerische tastatur eingeben



  • Ja man kann mit einer Tastenkombination alle Zeichen als Hey Wert eingeben, fragt sich nur wenn ein CR und LF kommt, wie das Programm dann unterscheiden soll ob noch Zeichen kommen oder es ein ENTER war. Wäre schonmal das erste Problem.



  • Deshalb habe ich ja empfohlen so zu verschlüsseln, dass
    nur Werte > 127 also > 0x7F herauskommen, dann hat man
    kein Problem mit Steuerzeichen.

    Nachteil man kann keine Umlaute verschlüsseln.



  • Also wenn ich zum Beispiel ein G mit M verXORen will, bekomme ich ein LF raus. Wo ist da der Wert >127? Oder habe ich was falsch verstanden?

    01001101 (M)
    01000111 (G)
    ^ (XOR)
    00001010 (LF)

    Oder willst du sagen er muss drauf aufpassen das Klartext und Schlüssel beim Bitweisen XOR imme größer 127 ergeben müssen? Selbst das macht aber nicht viel Sinn, weil man das wohl schlecht jedes mal kontrollieren kann, als der der eingibt.



  • Nein, du darfst dein G nur mit Zeichen bei denen das höchste
    Bit 1 ist XORen also immer 0x80 zu deinem z.B M dazuaddieren.
    Dann bekommst du nie Steuerzeichen.



  • Ja das würde funktionieren. Ein Anforderung war aber:

    kolbenfrsser schrieb:

    hallo,
    1. Vom Benutzer wird ein Passwort (= Key) eingelesen.

    Und mit deinem Ansatz würde es das Programm dann noch unkonfortabler machen als es eh schon ist.
    Desweiteren würden die Bytes seines Chiffrats dann immer >127 sein und diese müssten zum entschlüsseln natrülich auch immer wieder umständlich mit Tastenkombinationen eingegeben werden.
    Aber darüber lohnt es sich auch nicht weiter zu diskutieren 😉



  • Ne die 0x80 addiert man nach der Eingabe dazu.

    Man kann sich auch dummstellen.

    Liefer doch selbst mal ne Lösung...

    Dann kann ich endlich auch meine Umlaute verschlüsseln 😉



  • Ja kann man anscheinend wirklich. Verstehst du nicht das er den Text mit dem selben Programm auch wieder entschlüsseln wollte? Da ist es doch völlig egal wann du da irgendwas dazu addiert bzw. auf einen Wert größer 127 kommt. Sobald der Verschlüsselte Text Werte größer 127 enthält lässt sich das nurmal bescheiden schön über die Deutsche Tastatur eingeben.
    Eine Lösung wurde bereits schon fricky genannt. Bevor dann deine "Lösung" kam.



  • Hallo Kolbenfresser,

    habe ein ganz ähnliches problem wie du. Also wenn das angebot noch steht, würd ich mich freuen, wenn du mir deinen quelltext mal per mail schicken könntest, dann kann ich mal bei mir den fehler suchen!

    elisa_kramer@gmx.de

    vlg


Anmelden zum Antworten