Шифрование (криптография) по алгоритму "трафарет Ришелье" - C#

Узнай цену своей работы

Формулировка задачи:

Как реализовать шифрование(алгоритм - трафарет Ришелье)?

Решение задачи: «Шифрование (криптография) по алгоритму "трафарет Ришелье"»

textual
Листинг программы
        static IEnumerable<string> Swap(string text, string key)
        {
            var letters = text.Replace(" ", "").ToCharArray();
            var swaps = key.Split(new char[] { '(', ')' }, StringSplitOptions.RemoveEmptyEntries);
            int curPos = 0;
            for(int i = 0; i < swaps.Length; i++)
            {
                var Encrypted = letters.Skip(curPos).Take(swaps[i].Length).ToArray()
                    .Zip(swaps[i],(a,b) => new { letter = a, index = b})
                    .OrderBy(x=>x.index).Select(x=>x.letter).ToArray();
                curPos += swaps[i].Length;
                yield return new string(Encrypted);
            }
        }
        static void Main(string[] args)
        {
            var text = "шифр ришелье";
            var key = "(231)(4132)(3142)";
            Console.WriteLine(string.Join(" ",Swap(text,key)));
        }

Оцени полезность:

8   голосов , оценка 4.5 из 5
Похожие ответы