verschlüsselung



  • wie macht man eigentlich ein verschlüsselungsprogramm

    ich meine man muss ein bestimmtes wort eingeben oder eine zahl und dann bekommt man was
    oder auch mit mheren abfragen

    mfg lulasch



  • am einfachsten wäre es wenn du die buchsatebn in zahlen umwandeln würdest a = 97...



  • Musst du dich mal mit Kryptografie beschäftigen. Glaube nicht das hier jetzt jemand anfängt und das ganze erklärt, wo es ganze Bücher gibt die sich nur damit beschäftigen. Aber google hilft da bestimmt auch weiter.



  • Verschlüsselung kann sehr kompliziert werden. Für den Anfang kannste dir erstmal rot13 anschauen (eher Verschleierung, als Verschlüsselung).
    Hier ist die Beschreibung: http://de.wikipedia.org/wiki/ROT13
    Beispiel:

    #include <iostream>
    #include <string>
    using namespace std;
    
    string rot13(const string &wert)
    {
    	string ergebnis;
    	char alphabet[52];
    	int i;
    
    	for(i=0;i<26;++i)
    	{
    		alphabet[i] = 'a' + ((i+13)%26);
    		alphabet[i+26] = 'A' + ((i+13)%26);
    	}
    
    	for(i=0;i<wert.length();++i)
    	{
    		if(wert[i]>='a' && wert[i]<='z')
    			ergebnis.push_back(alphabet[wert[i]-'a']);
    		else if(wert[i]>='A' && wert[i]<='Z')
    			ergebnis.push_back(alphabet[wert[i]-'A'+26]);
    		else
    			ergebnis.push_back(wert[i]);
    	}
    
    	return ergebnis;
    }
    
    int main()
    {
    	cout << rot13("CPsernx") << endl;
    	cin.get();
    }
    


  • und hier nochmal ohne das alphabet-array:

    #include <iostream>
    #include <string>
    using namespace std;
    
    string rot13(const string &wert)
    {
        string ergebnis;
        int i;
    
        for(i=0;i<wert.length();++i)
        {
            if(wert[i]>='a' && wert[i]<='z')
                ergebnis.push_back('a' + ((wert[i]-'a'+13)%26));
            else if(wert[i]>='A' && wert[i]<='Z')
                ergebnis.push_back('A' + ((wert[i]-'A'+39)%26));
            else
                ergebnis.push_back(wert[i]);
        }
    
        return ergebnis;
    }
    
    int main()
    {
        cout << rot13("CPsernx") << endl;
        cin.get();
    }
    


  • Braucht man das Alphabet Array?

    MfG, Alex™



  • Alex™ schrieb:

    Braucht man das Alphabet Array?

    wenn man es statisch (bzw. global) als lookup-table verwaltet, kann rechenaufwand gespart werden. es macht natürlich keinen sinn, es bei jedem aufruf mit den gleichen werten neu zu initialisieren, so wie es im Beispiel gemacht wurde, um die version ohne array klarer zu machen.


Anmelden zum Antworten