"VErschlüsseln"



  • Hallo,

    habe ein problem! Möchte einen Text in der Konsole eingeben und er soll verschlüsselt ausgegeben werde (einfach nur die eingegebenen Buchstaben durch andere ersetzt werden [ a wird z.B immer durch v ersetzt usw]) Der ´"verschlüsselte" text soll dann zu kopieren sein und z.B in einen Texteditor einkopiert werden? Jmd. Ahnung?

    Dead Body



  • dead body schrieb:

    (einfach nur die eingegebenen Buchstaben durch andere ersetzt werden [ a wird z.B immer durch v ersetzt usw])

    Monoalphabetisches Substitutionsverfahren. Bau dir eine Tabelle, z.B. so (Codefragmente):

    #include <algorithm>
    
    char encryptChar(char c)
    {
        static const char EncryptionTable[255] = {'\0', ... 'v', 'c', 'x', 'q' ...}; //hard-coded!
        return EncryptionTable[c];
    }
    
    string text;
    cin >> text;
    transform(text.begin(), text.end(), text.begin(), encryptChar);
    cout << text;
    


  • Cool! Das hat mir echt weitergeholfen! Wenn jetzt das Problem mit dem einlesen des "Verschlüsselten" (!) Textes in den Editor noch geht KLASSE!

    ICh habe durch

    system("START C:\\Windows/write.exe");
    

    den Editor gestartet! Wie bekomme ich den TExt von der Konsole in den Editor???? Schwerer Fal, was??? 😕

    MB

    Dead Body



  • @ \aleph_0

    Ich bins nochmal! Tut mir leid, aber der von dir angegebene Code funktioniert nciht....Habe in Main eingebaut usw....geht nicht! Kannst mir bitte mal komplette Code aufschreibe (BSP wär nicht schlecht)

    MB

    Dead Body



  • Dead Body schrieb:

    Ich bins nochmal! Tut mir leid, aber der von dir angegebene Code funktioniert nciht....Habe in Main eingebaut usw....geht nicht!

    Hast du die EncryptionTable vervollständigt? Zeig mal deinen Code.



  • Hab ich nicht, WIE?

    Wie in main einbauen???



  • Dead Body schrieb:

    Hab ich nicht, WIE?

    Du musst dort die 255 Zeichen hineinschreiben. Es geht natürlich auch einfacher.



  • Du musst dort die 255 Zeichen hineinschreiben. Es geht natürlich auch einfacher.

    In welcher Reihenfolge? ICh will a zB immer mit f eretzten!

    EInfacher? Je einfacher desto besser?

    BSP ERWÜNSCHT!



  • Dead BOdy schrieb:

    In welcher Reihenfolge? ICh will a zB immer mit f eretzten!

    In der Reihenfolge des Zeichensatzes, d.h. ASCII unter Windows. 'A' ist da an der 65. Stelle.

    Dead BOdy schrieb:

    EInfacher? Je einfacher desto besser?

    Du kannst eine Cäsar-Chiffre nehmen:

    return (c - 'A' + static_cast<char>(3)) % ('Z' - 'A') + 'A'; // nur für Großbuchstaben
    


  • Sorry aber bin noch Anfänger in c++!

    ERBITTE EINEN KOMPLETTEN CODE ODER GUTE ANLEITUNG ZUM EINBINDEN!!!

    Und so einfach wie mgl.!

    Bitte um Hilfe!!

    Dead Body



  • kompletten Code? Weil du nicht weisst wie du das einbauen sollst? Wenn du das nicht kannst, solltest du des doch lernen und dir nicht alles vormachen lassen.

    Zeig doch mal, was du hast bzw. welche Fehler der Compiler meldet oder was nicht so ist, wie es sein sollte



  • Hallo auch!

    Ich bin BLUTIGER anfänger!!! ICh habe nichts als die Idee und dachte mir learning by showing! 😉 Und wenn jmd. dann was von einer Cäsar-Chiffrirung schreibt.....Gute Nacht! Aber jmd. wie ich ist hier ja nicht erwünscht, stimmts kingruedi? Nunja, im Gegensatz zu SideWinter spuckt ihr ja wohl nur die großen Töne! Ich danke \aleph0 in der Hoffnung er kann mir KONSTRUKTIV helfen!

    Dead Body



  • ... schrieb:

    learning by showing! 😉

    Weil ich Langeweile habe:

    #include <iostream>
    #include <algorithm>
    #include <string>
    using namespace std;  
    
    char encryptChar(char c)
    {
    	if (!isalpha(static_cast<int>(c)))
    		return c;
    	if (isupper(static_cast<int>(c)))
    		return (c - 'A' + 1) % ('Z' - 'A' + 1) + 'A';
    	else
    		return (c - 'a' + 1) % ('z' - 'a' + 1) + 'a';
    }
    
    int main()
    {
    	string text;
    	getline(cin, text);
    	transform(text.begin(), text.end(), text.begin(), encryptChar);
    	cout << text;
    
        return 0;
    }
    

    ... schrieb:

    Und wenn jmd. dann was von einer Cäsar-Chiffrirung schreibt.....Gute Nacht!

    Google findet das sogar mit Rechtschreibfehler: http://www.google.de/search?q=Cäsar-Chiffrirung&ie=UTF-8&oe=UTF-8&hl=de&meta=



  • Google findet alles - also weg mit dem Forum? Naja trotzdem schön das du ihm helfen konntest.

    Zum Thema Cäsar-Chiffre findet man hier noch Informationen: http://www.volkard.de/vcppkold/caesarchiffre.html

    MfG SideWinder



  • SideWinder schrieb:

    Google findet alles

    Hab ich nicht gesagt, aber für einfache Begriffserklärungen reicht es fast immer.



  • @ \aleph_0

    Ich danke dem Resultat deiner Lanmgeweile 😉 Werd das ding jetzt mal kompilieren! Fehler werden gepostet!

    THX A LOT!

    Dead Body



  • Ja, er hat alles kompiliert! Wenn ich jetzt noch das alles kopieren könnte......Perfekt! Wie kann ich einen solchen Konsolen Text mit STRG&C rauskopieren???? Oder direkt in den Texteditor?

    MB

    dead Body



  • Aus der Konsole herauskopieren kannst du mit:

    - gewünschten Text markieren
    - Links- oder Rechtsklick auf das Programmsymbol (ganz links oben im Fenster)
    - Bearbeiten -> Kopieren auswählen

    Direkt in einen Texteditor kannst du es auch bringen. Da musst du die Ausgabe umleiten (dein Programm darf dann aber nur das PW ausgeben):

    pw.exe -UNVERSCHLUESSELT > dateiname.txt

    Sonst wird die gesamte Ausgabe umgeleitet.

    MfG SideWinder



  • war mein Posting von gestern so schlecht, dass es gelöscht wurde oder wurde es nicht richtig gesendet?



  • Gelöscht habe ich nichts - offenbar hat es Probleme beim Senden gegeben.

    MfG SideWinder


Anmelden zum Antworten