Feedback

C# - Caesar-Chiffre

Veröffentlicht von am 24.11.2007
(1 Bewertungen)
Diese beiden Methoden ver- und entschlüsseln einen Text mit dem Caesar-Chiffre-Verfahren.
Anders als bei der Originalversion wird die Verschiebung der Buchstaben nicht nur durch eine Zahl bestimmt, sondern durch einen string, der als Schlüssel dient.
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Entwickler - Kompakt

Nach Teilnahme an dieser Schulung kennen Sie alle wesentlichen Funktionen des TFS für Entwickler. Sie setzen Software-Entwicklung mit dem Visual Studio Team Foundation Server erfolgreich um.

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

        /// <summary>
        /// Verschlüsselt einen Text mit dem Ceasar-Chiffre-Verfahren
        /// </summary>
        /// <param name="text">Der zu verschlüsselnde Text</param>
        /// <param name="key">Der Schlüssel</param>
        /// <returns>Gibt den Text verschlüsselt zurück</returns>
        public string Encrypt(string text, string key)
        {
            if (key != string.Empty)
            {
                //der verschlüsselte Text
                string encrypted = string.Empty;
                //Die Stelle des Schlüssels, die angibt, um wieviel ein Buchstabe verschoben werden soll
                int keyindex = 0;

                foreach (char c in text)
                {
                    int asciinr = (int)c;//die Nummer des Zeichens in der ASCII-Tabelle
                    //Nummer wird um Wert des Zeichens des Schlüssels erhöht,
                    //das an der Stelle von keyindex steht
                    asciinr += (int)key[keyindex]; 

                    if (asciinr > 255)
                        asciinr -= 255;

                    //hinzufügen des verschlüsselten Zeichens zum verschlüsselten string
                    encrypted += (char)asciinr;

                    keyindex++;
                    if (keyindex > key.Length - 1)
                        keyindex = 0;
                }
                return encrypted;
            }
            else
                //wenn der Schlüssel leer ist, wird der Text nicht verschlüsselt
                return text;
        }


        /// <summary>
        /// Entschlüsselt einen Text, der mit dem Ceasar-Chiffre-Verfahren verschlüsselt wurde
        /// </summary>
        /// <param name="text">Der zu entschlüsselnde Text</param>
        /// <param name="key">Der Schlüssel</param>
        /// <returns>Gibt den Text entschlüsselt zurück</returns>
        public string Decrypt(string text, string key)
        {
            if (key != string.Empty)
            {
                //der entschlüsselte Text
                string decrypted = string.Empty;
                //Die Stelle des Schlüssels, die angibt, um wieviel ein Buchstabe verschoben werden soll
                int keyindex = 0;

                foreach (char c in text)
                {
                    int asciinr = (int)c;//Der Wert des Zeichens in der ASCII-Tabelle
                    asciinr -= (int)key[keyindex];

                    if (asciinr < 0)
                        asciinr = 255 + asciinr;

                    decrypted += (char)asciinr;
                    keyindex++;
                    if (keyindex > key.Length - 1)
                        keyindex = 0;
                }
                return decrypted;
            }
            else
                //wenn der Schlüssel leer ist, wird der Text nicht entschlüsselt
                return text;
        }

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!