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]

ASP.NET Core Server- und Client-Programmierung

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

C# Aufbaukurs

Sie haben grundlegende .NET- und C#-Kenntnisse und und wollen diese nun erweitern. Der Aufbaukurs C# führt Sie ein die Arbeit mit Interfaces und Delegates, Generics und Parallel Computing.

        /// <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!