brauche denkhilfe zur methode und realisierung



  • HIER AUS ANDEREM FORUM:
    --------------------------------------------
    also eigentlich schreib ich ein Programm zum Verschlüsseln von Texten, aber hier geht es nicht um das Prgramm zum Verschlüsseln, sondern um die Methode.

    also ich lasse mir 26 Zahlen von 1 - 26 auswürfeln.
    jede Zahl steht für die jeweilige stelle im alphabet des Buchstabens.
    BEISPIEL:

    a=1
    b=2
    c=3
    

    das ist festgelegt.
    die erste ausgewürfelte Zahl soll später der erste buchstabe sein.
    (ich weiß schlecht erklärt seht es euch einfach an)
    BEISPIEL

    a = erste ausgewürfelte Zahl  = 9
    b = zweite ausgewürfelte Zahl = 3
    c = dritte ausgewürfelte Zahl = 20
    .
    

    usw...
    dann seh ich mir den zu verschlüsselnden text an.
    BEISPIEL

    text = abc
    a = 9
    b = 3
    c = 20
    --> i (ist an neunter stelle im alphabet) steht immer fürs a im verschlüsselten
    

    das problem wie mach ich es rückwärts, wenn ich weiß was für eine zahl in a gepackt wurde

    also so:
    a = 9
    b = 3
    c = 20
    ...
    

    und den verschlüsselten text hab.
    -------------------------------------------------------------------------
    aber mein Kopf glüht ,wenn ich eine Lösung mit arrays und umkehroperationen suche. Ich habe schon mal Hilfe bekommen von Dravere, nur mit dem unterschied, das es sich hier nicht mehr um den Ceasar Algorithmus handelt und das alte Programm nicht mehr funktioniert. ich weiß aus einem a wurde ein i; und aus einem s wurde ein a (in meinem Beispiel, dass ich nutze). Aber was hilft mir das ? daran bin ich schon mal gescheitert.

    3 faches Danke für eine Lösung, idee, vorschlag, funktion, codeschnipsel...



  • so sieht es bereits aus, ist aber nur beim einlesen und zuweisen: (falls es hilft)

    #include <cstdlib>
    #include <iostream>
    #include <string>
    #include <fstream>
    #include <sstream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        cout<<"Decoder by 1.01\n";
        int alphcou[29],arrh;
        string alphabet,key[28];
        stringstream converter;
        ifstream datei;
        string pfad;
        cout<<"Pfad des Schluessels ?\n";
        getline(cin,pfad);
        if (pfad == "")
        {
                 pfad = "C:\\key2.txt";
                 }
        datei.open(pfad.c_str()); //Schlüssel lesen
        {
                         if(datei)
                         {
                                  arrh = 0;
                                  for(;;)
                                  {
                                                 arrh++;
                                                 getline(datei,key[arrh]);
                                                 if(arrh >= 26) // gesuchte Zeile erreicht
                                        {
    
                                                    break; // Zeile gefunden, Einlesen abbrechen
                                        }
                                  }
    
                                 cout<<"lesen erfolgreich\n";
                         }
                         else
        {
        cout<<"Datei existiert nicht, stellen sie die Existens sicher und versuche es erneut";
        cin.get();
        return 0;
        }
    
                                  datei.close();
                                }
        int i = 0;
        string matrix[27][27];
        arrh = 0;
        for(;i<27;i++)         
        {     
        converter.clear();           
        arrh = i;
        converter << key[i];
        converter >> alphcou[arrh];
        converter.clear();
        matrix[i] = alpcou[arrh];
        cout<<alphcou[arrh]<<"\n";    
        }           
        string decode;       
        cout<<"zu entschlüsselnden text eingeben:\n";
        getline(cin,decode);
        int forfor = 0;
        for(;forfor;forfor++)
        {
    
        cin.get();
        cin.get();
        return EXIT_SUCCESS;
    }
    


  • rück endlich ma richtig ein...
    das haben dir hier mind. scho 5 leute mind. scho 10mal gesagt -.-

    bb

    PS:
    if (pfad == "") -> pfad.empty()

    arrh = 0;
                                  for(;;)
                                  {
                                                 arrh++;
                                                 getline(datei,key[arrh]);
                                                 if(arrh >= 26) // gesuchte Zeile erreicht
                                        {
    
                                                    break; // Zeile gefunden, Einlesen abbrechen
                                        }
                                  }
    

    mach die schleife doch ma ordentlich...

    int forfor = 0;
        for(;forfor;forfor++)
        {
    
        cin.get();
        cin.get();
        return EXIT_SUCCESS;
    }
    

    was willste denn hier machen? Oo



  • unskilled schrieb:

    int forfor = 0;
    for(;forfor;forfor++)
    {

    cin.get();
    cin.get();
    return EXIT_SUCCESS;
    }

    unskilled schrieb:

    was willste denn hier machen? Oo

    da sollte was reinkommen so weit war ich aber noch nicht.



  • -nil-



  • Du hast den verschlüsselten Text und die Tabelle, wie (zufällig) verschlüsselt wurde?
    Da die Verschlüsselung gänzlich unabhängig vom Ausgangstext ist, ist beides dasselbe. Du hast also eigentlich nur den verschlüsselten Text.
    Es ist also unmöglich, wenn ich alles richtig verstanden habe.


Anmelden zum Antworten