Wie Verschiebechiffre (auch als Caesar-Verschlüsselung bekannt) umsetzen?



  • Ja weil normal Programmieren wir in Java oder PHP aber da ich mit C++ nur bzw wir alles nur 10Schulstunden gehabt haben is es halt net so einfach!
    Aber ich muss sagen ihr helft mir sehr!
    Danke!!!

    So nun hiermal ein Anfang des Verschlüsselung Algorthmus

    if(mem_ver_text->Text.IsEmpty()==true)
       {
          ShowMessage("Nichts zum Verschlüsseln da!");
       }
       else
       {
          lbl_size->Caption=mem_ver_text->Text.Length();//Zum Ausgeben der Länge des Textes
          ShowMessage("Bitte geben Sie jetzt den Key ein!");
          Tfrm_key *key_ein= new Tfrm_key(this);//Zeiger auf Key Eingabe Fenster
          key_ein->ShowModal();//Zum Aufrufen des Key Eingabe Fensters
          int buch_zahl;//Zum verschl.Buchstaben errechnen
          //Beginn des Verschlüsselungsalgorthmus
          char buchstabe;//um einzeln Buchszaben zu Speichern
          for (int i=0;i<mem_ver_text->Lines->Count;i++)
          {
             for (int j=1;j<=mem_ver_text->Lines->Strings[i].Length();j++)
             {
                //Hier nun der Verschlüsselungs Algorithmus
                // Zeichen holen, ASCII-Wert bestimmen und verschlüsseln:
                buchstabe = mem_ver_text->Lines->Strings[i][j];
    //Buchstabe zur Verinfachung zwischenspeichern
                buch_zahl = (int)buchstabe+kennwort; 
    // in int Umwandeln und kennwort dazu addieren
             }
          }
          Memo1->Lines->Text=IntToStr(buch_zahl);
    /*Zu Testzwecken soll es in einem Extra Memo Feld anzeigen*/
    //->Hier gibt er mir nur die Zahl,anstatt denn Buchstaben, aus aber ich Caste //doch richtig mit der Funktion oder? 
    }
    

    Kennwort ist aus dem Extra Eingabe Formular das ich gemacht habe!
    Hier mal der Code

    void __fastcall Tfrm_key::btn_takeClick(TObject *Sender)
    {
       if(edt_key_ein->Text.IsEmpty()==true)
       {
          ShowMessage("Geben Sie was ein!");
       }
       else
       {
          frm_main->kennwort=edt_key_ein->Text.ToInt();
          Close();
       }
    }
    


  • schally schrieb:

    aber die Hilfe vom Borland is auch net grad die beste müsst ihr zugeben!

    Die Hilfe von Borland ist genial. (siehe auch: http://www.junix.ch/bcb/help/hilfe.html ) Bedingt allerdings, dass man die Konzepte der Sprache verstanden hat (was bestimmt nicht nach 10 Schulstunden der Fall ist) Womit wr im übrigen wieder bei dem sind was schon andere vorher gesagt haben: Die Grundlagen hast du definitv nicht drauf. Grundlagen bedeutet nicht irgendwas tippen zu können, das hoffentlich läuft...



  • jo ok ich mein in anderen Sprachen is es besser!
    aber wenn man halt nur 10Schul Stunden gezeigt bekommen hat und neben her eine Datenbank,PIC -Projekt(Thermometer) bauen und betreuen muss kann man halt net alles könne!
    mfg
    schally



  • Hi,

    *ironie an*
    was ist den das für eine Schule,
    hört sich für mich eher wie eine
    unbezahlte Praktikumsstelle an
    *ironie aus*
    🤡
    Grüsse



  • for (int i=0;i<mem_ver_text->Lines->Count;i++) 
          { 
             for (int j=1;j<=mem_ver_text->Lines->Strings[i].Length();j++) 
             { 
                //Hier nun der Verschlüsselungs Algorithmus 
                // Zeichen holen, ASCII-Wert bestimmen und verschlüsseln: 
                buchstabe = mem_ver_text->Lines->Strings[i][j]; 
    //Buchstabe zur Verinfachung zwischenspeichern 
                buch_zahl = (int)buchstabe+kennwort; 
    // in int Umwandeln und kennwort dazu addieren 
             } 
          } 
          Memo1->Lines->Text=IntToStr(buch_zahl);
    

    Hmm, jetzt hast Du den kompletten Text verschlüsselt (mehr oder weniger, es fehlt immer noch die Überlaufabfrage!!!), läßt die verschlüsselten Zeichen im Speicher verfliegen und fügst zuallerletzt den IntegerWert des letzten Zeichens in ein Memo ...
    Versuch's mal ungefähr so:

    Memo1->Lines->Text += (char)buch_zahl;
    

    Und das machst Du nach JEDEM einzelnen verschlüsselten Buchstaben!



  • Nö HBFI ....

    aber nun zu meinem Problem zurück ich benutze die Richtige Methode
    IntToStr(int_wert)-->Mein Beispiel :IntToStr(buch_zahl);!

    aber warum gibt er mir nichts aus!

    int buch_zahl;//Zum versch.Buchstaben errechnen
          //Beginn des Verschlüsselungsalgorthmus
          char buchstabe;
          String Buchstabe;
          for (int i=0;i<mem_ver_text->Lines->Count;i++)
          {
             for (int j=1;j<=mem_ver_text->Lines->Strings[i].Length();j++)
             {
                //Hier nun der Verschlüsselungs Algorithmus
                // Zeichen holen, ASCII-Wert bestimmen und verschlüsseln:
                buchstabe = mem_ver_text->Lines->Strings[i][j];//Buchstabe zur Verinfachung zwischenspeichern
                buch_zahl = (int)buchstabe+kennwort; // in int Umwandeln und kennwort dazu addieren
             }
          }
    Memo1->Lines->Text=Memo1->Lines->Text+(char)buch_zahl;//Buchstabe anzeigen
    

    Nachtrag So Problem gelöst!!!!
    mfg
    schally



  • Christian Sonder schrieb:

    for (int i=0;i<mem_ver_text->Lines->Count;i++) 
          { 
             for (int j=1;j<=mem_ver_text->Lines->Strings[i].Length();j++) 
             { 
                //Hier nun der Verschlüsselungs Algorithmus 
                // Zeichen holen, ASCII-Wert bestimmen und verschlüsseln: 
                buchstabe = mem_ver_text->Lines->Strings[i][j]; 
    //Buchstabe zur Verinfachung zwischenspeichern 
                buch_zahl = (int)buchstabe+kennwort; 
    // in int Umwandeln und kennwort dazu addieren 
             } 
          } 
          Memo1->Lines->Text=IntToStr(buch_zahl);
    

    Hmm, jetzt hast Du den kompletten Text verschlüsselt (mehr oder weniger, es fehlt immer noch die Überlaufabfrage!!!), läßt die verschlüsselten Zeichen im Speicher verfliegen und fügst zuallerletzt den IntegerWert des letzten Zeichens in ein Memo ...
    Versuch's mal ungefähr so:

    Memo1->Lines->Text += (char)buch_zahl;
    

    Und das machst Du nach JEDEM einzelnen verschlüsselten Buchstaben!

    Ich wollte jetzt jeden einzelnen Buchstaben durhc gehn und speichern und später in einen Strng schreiben!



  • sorry für den folgenden Beitrag:

    Also dafür dass du die Grundlagen beherrschst hat das doch ziemlich lange gedauert 😉

    mfg, Micha!

    Aso ... Die Borland - Hilfe is super wenn man damit umgehen kann 🙂 !



  • jo wir wissen es jetzt alle oder will noch jemand was sagen!
    aber wenn du soviel zu machen hast wie ich hier inder schule (auch gleichzeitug ausbildung) dann könntet ihr auch neben her net noch ne andere sprache lernen !

    Ich dachte Communitys sind da um zu Helfen und nimmer auf einem rumzuhacken der sich gerade in diese sprache einarbeitet!

    Weil dieses Projekt zählt 50% meiner Note in der Proggrammierung(stehe auf 1,5 deswegen brauche ich ne gute Note)also sry wenn ich manchmal so angepisst wirke bzw rüber komme is net meine absicht ,müsst ihr verstehn sry!
    aber ich muss hier noch 128Rechner betreuen und im mom stellen wir gerade auf neues Linux um da hab ich net so viel Zeit um an diesem Teil zu arbeiten!

    @Micha
    verstehste es jetzt?

    Thx für eure hilfe 👍 ich werde bestimmt nochmal was fragen;-)

    mfg
    schally



  • hallo,

    ich hab doch sorry gesagt 😃 ! Und nebenbei bemerkt hakt keiner auf dir rum, dafür haben wir dir - glaub ich - viel zu sehr geholfen! Und wenn ich dir sage dass ich teilweise 12 - 14 Stunden auf Arbeit verbringe und auch teilweise den ganzen Tag lang nix anderes mache als mich mit Qu(ä)lcode auseinander zusetzen, kann man das mit deinen "strapatzen" sicherlich mindestens gleich setzen 😉 !

    mfg, Micha!



  • ja klar aber net wenn du im letzten ausbildungsjahr bist und du alleine mit eine der im ersten jahr azubi ist alles machen musst weil die herrschaften oben nichts anders zu tun haben ausser kaffee zutrinken!

    Ja ich sagte ja ihr habt mir sehr geholfen!Das habe ich ja auch nie bestrieten!
    Deswegen sag ich nochmal 👍 for all!

    mfg
    schally



  • Das wird langsam zum Offtopic 😃 ! Ich hab ja nix gegen deine Ausbildung gesagt. Ich hoffe nur, dass wenn du dir jetzt für die den Arsch aufreist, die dir wenigstens ne Festanstellung gewähren! Naja, wie dem auch sei, kann mal bitte einer den Thread schließen? 😃

    mfg, Micha

    [edit] Rechtschreibfehler 😃 [/edit]



  • So nun mal en Update es geht vorwärts;)
    Hier mal en Bild
    Klick

    so nun muss ich mir noch was einfallen lassen wie aus dem ganzen memo feld in einzelne Variablen schrieb um sie dann verschlüsseln zu können.

    Nee noch net Schliessen!
    Bin ja noch nicht fertig ;)!
    Mfg und Danke

    Schally



  • Was findet man den unter 'Hile'? :p



  • Das hatten wir doch schon 😕

    for (int i=0;i<mem_ver_text->Lines->Count;i++) 
          { 
             for (int j=1;j<=mem_ver_text->Lines->Strings[i].Length();j++) 
             { 
                buchstabe = mem_ver_text->Lines->Strings[i][j]; 
                buch_zahl = (int)buchstabe+kennwort;       
                Memo1->Text = Memo1->Text + IntToString(buch_zahl);
             } 
          }
    


  • jo stimmt oer ich kann mich nimmer konzentieren 😉
    Melde mich wenn ich das Programm fertig hab !

    mfg und VIELEN DANK EUCH ALLEN!!!!


Anmelden zum Antworten