C# :: Aufgabe #87 :: Lösung #1

3 Lösungen Lösungen öffentlich
#87

One-Time-Pad Verschlüsselung

Anfänger - C# von SymTech - 13.02.2015 um 14:04 Uhr
Schreibe eine Konsolenanwendung die einen beliebigen Text nach One-Time-Pad ver- und entschlüsseln kann. Es sollen nur Buchstaben, Zahlen und Sonderzeichen vorkommen (also nicht die ganze ASCII-Palette verwenden).

Nutzen sie dabei nur den Namespace:
"System"

Konsolenausgabe:


Text codieren oder decodieren? (c/d)
c

Text: Train your programmer
Schlüssel: Das ist ein Schlüssel

Ergebnis:
&yX\oK=)[h?vJ}+4°EEy4
#1
1x
vote_ok
von eulerscheZhl (5230 Punkte) - 13.02.2015 um 17:47 Uhr
Quellcode ausblenden C#-Code
using System;

namespace trainYourProgrammer
{
	class MainClass
	{
		private static string alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789^!\"§$%&/()=?²³{[]}\\`´+*~#',.-;:_<>|° äöüÄÖÜß";

		private static string encrypt(string text, string key) {
			if (text.Length > key.Length)
				return "Passwort zu kurz!";
			char[] result = new char[text.Length];
			for (int i = 0; i < text.Length; i++) {
				result [i] = alphabet [(alphabet.IndexOf (text [i]) + alphabet.IndexOf (key [i])) % alphabet.Length];
			}
			return new string (result);
		}

		private static string decrypt(string text, string key) {
			if (text.Length > key.Length)
				return "Passwort zu kurz!";
			char[] result = new char[text.Length];
			for (int i = 0; i < text.Length; i++) {
				result [i] = alphabet [(alphabet.IndexOf (text [i]) - alphabet.IndexOf (key [i]) + alphabet.Length) % alphabet.Length];
			}
			return new string (result);
		}

		public static void Main(string[] args) {
			string mode;
			do {
				Console.WriteLine ("Text codieren oder decodieren? (c/d)");
				mode = Console.ReadLine ();
			} while (mode != "c" && mode != "d");

			Console.Write ("Text: ");
			string text = Console.ReadLine ();
			Console.Write ("Schlüssel: ");
			string key = Console.ReadLine ();
			Console.WriteLine (mode == "c" ? encrypt (text, key) : decrypt (text, key));

		}
	}
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2107707

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.