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]

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

VB.NET Einführung

Die Schulung zeigt Ihnen, wie Sie einfache, benutzerorientierte Programme, die auf Datenbanken zugreifen, in VB.NET eigenständig entwickeln. 

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