/* © MATTO MATTI 2020 http://mattomatti.com/pl/a35ca napisane przy użyciu Visual Studio Community 2015 2020-03-14 v 1.0 */ using System; namespace plcode1cs { class Program { static void KrecKola(ref string kolo_tekst, ref string kolo_szyfr, int poz) { int nadir = kolo_tekst.Length / 2; kolo_szyfr = kolo_szyfr.Substring(poz) + kolo_szyfr.Substring(0, poz); kolo_szyfr = kolo_szyfr[0] + kolo_szyfr.Substring(2, nadir - 1) + kolo_szyfr[1] + kolo_szyfr.Substring(nadir + 1, nadir - 1); kolo_tekst = kolo_tekst.Substring(poz) + kolo_tekst.Substring(0, poz); kolo_tekst = kolo_tekst.Substring(1, 2) + kolo_tekst.Substring(4, nadir - 2) + kolo_tekst[3] + kolo_tekst.Substring(nadir + 2, nadir - 2) + kolo_tekst[0]; } static string Szyfruj(string tekst, string kolo_tekst, string kolo_szyfr) { string szyfrogram = ""; foreach (char znak in tekst) { int poz = kolo_tekst.IndexOf(znak); if (poz == -1) { szyfrogram += znak; continue; } char szyfr_znak = kolo_szyfr[poz]; szyfrogram += szyfr_znak; KrecKola(ref kolo_tekst, ref kolo_szyfr, poz); } return szyfrogram; } static string Rozszyfruj(string szyfrogram, string kolo_tekst, string kolo_szyfr) { string tekst_jawny = ""; foreach (char znak in szyfrogram) { int poz = kolo_szyfr.IndexOf(znak); if (poz == -1) { tekst_jawny += znak; continue; } char szyfr_znak = kolo_tekst[poz]; tekst_jawny += szyfr_znak; KrecKola(ref kolo_tekst, ref kolo_szyfr, poz); } return tekst_jawny; } static void Main(string[] args) { Console.WriteLine("Podaj tekst do zaszyfrowania:"); string tekst = Console.ReadLine(); Console.WriteLine("Podaj kolejne litery alfabetu tekstu jawnego:"); string kolo_tekst = Console.ReadLine(); Console.WriteLine("Podaj kolejne litery alfabetu tekstu szyfrujacego:"); string kolo_szyfr = Console.ReadLine(); string szyfrogram = Szyfruj(tekst, kolo_tekst, kolo_szyfr); Console.WriteLine(" Szyfrogram: {0}", szyfrogram); string tekst_jawny = Rozszyfruj(szyfrogram, kolo_tekst, kolo_szyfr); Console.WriteLine("Tekst jawny: {0}", tekst_jawny); Console.ReadKey(); } } }