Feedback

C# - Cäsar-Verschlüsselung

Veröffentlicht von am 13.11.2015
(2 Bewertungen)
Verschlüsselung-Methoden ,damit keine dritte Person den Inhalt liest
GFU-Schulungen  [Anzeige]

VB.NET Aufbau

Sie verfügen nach der Schulung über fundierte Kenntnisse in der Arbeit mit objektorientierten Modellen in VB.NET und können wiederverwendbare Komponenten eigenständig erzeugen.

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

namespace Caesar_Verschluesselung
{
    class CaesarVerschluesselung
    {
      public string Verschluesseln(string eingabe,int schluessel)
        {
            string ausgabe = "";

            for (int i = 0; i < eingabe.Length; i++)
            {
                char c = eingabe[i];
                ausgabe +=   (char)(c + schluessel);
            }

            return ausgabe;
        }

        public string Enschluesseln(string eingabe,int schluessel)
        {

            string ausgabe = "";

            for (int i = 0; i < eingabe.Length; i++)
            {
                char c = eingabe[i];
                ausgabe += (char)(c - schluessel);
            }

            return ausgabe;
        }
    }
}
Abgelegt unter Cäsar, Verschlüsslung, Geheime-Sprache.

2 Kommentare zum Snippet

Martin Stühmer schrieb am 17.11.2015:
Hallo TA,

du solltest nie darauf vertrauen, dass deine Methoden/Funktionen korrekt verwendet werden. Aktuell ist hier noch ein erhebliches Fehlerpotenzial.

1. Du überprüfst nicht ob du überhaupt eine korrekte Eingabe erhälst.
Dies kannst du relativ einfach lösen mit dem folgenden Zeile.
if (string.IsNullOrWhiteSpace(eingabe)) return string.Empty;


2. Dein Parameter schluessel ist sehr ungenau und relativ einfach nach zu verfolgen. Da jedes Zeichen mit einem festen nummerischen Wert verschoben wird. Dies kannst du lösen, in dem du einen Schlüssel String mit übergibst.
Hier ein Beispiel:
        public static string CeasarDecode(string value, string ceasarKey)
{
if (string.IsNullOrWhiteSpace(value)) return string.Empty;
if (string.IsNullOrWhiteSpace(ceasarKey)) return value;
StringBuilder result = new StringBuilder();
int index = 0;

foreach (var c in value.ToCharArray())
{
var charCode = Convert.ToInt32(c) - Convert.ToInt32(ceasarKey[index]);

if (charCode < 0)
charCode += 255;
result.Append(Convert.ToChar(charCode));

index += 1;
if (index > ceasarKey.Length - 1)
index = 0;
}

return result.ToString();
}


2.1. schluessel = 0, brauchst du nicht weiter bearbeiten und kannst direkt eingabe zurückgeben
if (schluessel.Equals(0)) return eingabe;


Gruß Martin
I_CU_IN_HELL schrieb am 17.11.2015:
Bei z bzw Z kommt bei(schlüssel 1) { bzw [ und nicht wie bei der Cäsar-Verschlüsselung kommen müsste a bzw A.
 

Logge dich ein, um hier zu kommentieren!

Ähnliche Snippets