Шифр гронсфельда си шарп

Шифр Гронсфельда

Каждый символ сообщения сдвигается на k ключ того же алфавита. Например,сообщение «абвгд» при ключе k=2 будет «вгдеё». Теперь нужно сделать, чтобы символы сдвигались на соответствующую цифру ключа, например пусть k=2718
тогда сообщение «ВОСТОЧНЫЙЭКСПРЕСС» зашифруется как: «ДХТЬРЮОГЛДЛЩСЧЖЩУ».то есть буква В сдвинется на 2 символа, буква О на 7 символов, буква С на 1, буква Т на 8 и т.д.
Как это сделать?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Гронсфельд { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { textBox3.Text = ""; int key = 0; string[] array = new string[] { "а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я" }; try { key = Convert.ToInt32(textBox1.Text); } catch { MessageBox.Show("Установите шаг шифрования!"); return; } string[] array2; array2 = array.Skip(key).Concat(array.Take(key)).ToArray(); //Данная функция смещает по кругу ячейки массива. Для расшифровки меняет ключ на противоположный знак foreach (string element in array2) { } string text = textBox2.Text; foreach (char bykva in text) { for (int i = 0; i  array.Length; i++) { if (bykva.ToString().ToLower() == array[i]) { textBox3.Text += array2[i]; break; } else  } } } } private void Form1_Load(object sender, EventArgs e) { } } }

Источник

Шифр Гронсфельда — C#

Каждый символ сообщения сдвигается на k ключ того же алфавита. Например,сообщение «абвгд» при ключе k=2 будет «вгдеё». Теперь нужно сделать, чтобы символы сдвигались на соответствующую цифру ключа, например пусть k=2718 тогда сообщение «ВОСТОЧНЫЙЭКСПРЕСС» зашифруется как: «ДХТЬРЮОГЛДЛЩСЧЖЩУ».то есть буква В сдвинется на 2 символа, буква О на 7 символов, буква С на 1, буква Т на 8 и т.д. Как это сделать?

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Гронсфельд < public partial class Form1 : Form < public Form1() < InitializeComponent(); >private void button1_Click(object sender, EventArgs e) < textBox3.Text = ""; int key = 0; string[] array = new string[] < "а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я" >; try < key = Convert.ToInt32(textBox1.Text); >catch < MessageBox.Show("Установите шаг шифрования!"); return; >string[] array2; array2 = array.Skip(key).Concat(array.Take(key)).ToArray(); //Данная функция смещает по кругу ячейки массива. Для расшифровки меняет ключ на противоположный знак foreach (string element in array2) < >string text = textBox2.Text; foreach (char bykva in text) < for (int i = 0; i < array.Length; i++) < if (bykva.ToString().ToLower() == array[i]) < textBox3.Text += array2[i]; break; >else > > > > private void Form1_Load(object sender, EventArgs e) < >> >

Код к задаче: «Шифр Гронсфельда»

using System; using System.Linq; using System.Text; class Program < public static void Main() < string alphabet = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ"; int[] keys = "2718".Select(ch =>(int)Char.GetNumericValue(ch)).ToArray(); string s = "ВОСТОЧНЫЙЭКСПРЕСС"; StringBuilder sb = new StringBuilder(); for (int i = 0; i < s.Length; i++) < sb.Append(alphabet[(alphabet.IndexOf(s[i]) + keys[i % keys.Length]) % alphabet.Length]); >Console.WriteLine(sb); > >

Источник

Шифр Гронсфельда

Каждый символ сообщения сдвигается на k ключ того же алфавита. Например,сообщение «абвгд» при ключе k=2 будет «вгдеё». Теперь нужно сделать, чтобы символы сдвигались на соответствующую цифру ключа, например пусть k=2718
тогда сообщение «ВОСТОЧНЫЙЭКСПРЕСС» зашифруется как: «ДХТЬРЮОГЛДЛЩСЧЖЩУ».то есть буква В сдвинется на 2 символа, буква О на 7 символов, буква С на 1, буква Т на 8 и т.д.
Как это сделать? Напишите пожалуйста полностью в windows forms application c#.

Шифр Гронсфельда. Неверное смещение буквы
Подскажите из за чего при шифровании данным методом может постоянно буква смещаться на 15 символов.

Шифр Гронсфельда, получается не то что надо
Помогите с шифром Гронсфельда, сделал программу ,но она берет целый ключ, а не по одной цифре

Шифр
Привет ребят:) Вот смотрите взбрела мне в голову идея . В общем задача такова: есть два метода.

Шифр
В общем прога для зашифровки, расшифровки текста. Можно сделать через присвоению каждому символу.

Шифр Виженера
Салют(; Написала прогу с реализацией одного метода, описанного на википедии, по формуле все вроде.

Шифр Полибия
может кто нибудь и сможет помочь, нужно реализовать шифр Полибия на любом языке, С++ или C#, м?

Шифр Цезаря
Ребята,помогите пожалуйста. Нужно написать шифр Цезаря в си шарпе ,использую вот такой алгоритм.

Шифр Цезаря
Ребята помогите пожалуйста сдать эту задачу. Надо первые 3 буквы алфавита переставить назад и.

Источник

Шифр Гронсфельда

Шифр Гронсфельда
Каждый символ сообщения сдвигается на k ключ того же алфавита. Например,сообщение "абвгд" при.

Шифр Гронсфельда — реализовать дешифровку
Сообщение ВОСТОЧНЫЙ ЭКСПРЕСС Ключ 271827182 71827182 Шифртекст ДХТЬРЮОГЛ ДЛЩСЧЖЩУ

Шифр Полибия. Программа выводит шифр в разной последовательности.
Реализую шифр полибия для русского алфавита. Возникла проблема при выводе шифра. Например при вводе.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
using System; namespace Gronsfeld { class encode_decode { //ecn_START public string GronsfeldEncipher(string toCode, string K) { //string toCode = null; for (int i=1; itoCode.Length; i++) { int _T = (int)(toCode[ i ]); int T = (int)(((toCode[ i ]) + (int)(K[((i-1) % (K.Length)) + 1]) - (int)('0'))); if (T >= 256) T-= 256; toCode[i] = char(T); } return toCode; }//enc_END //dec_START public string GronsfeldDecipher(string toDecode, string K) { for (int i=1; itoDecode.Length; i++) { int T = (int)(((toDecode[i]) - (int)(K[((i-1) % (K.Length)) + 1]) - (int)('0'))); if (T  0) T+=256; toDecode[i] = char(T); } return toDecode; }//dec_END static void Main() { Console.WriteLine("Hello World!"); string a = "hello"; string b = "qwe"; string s = GronsfeldEncipher(a, b); Console.WriteLine(s); Console.WriteLine("Press any key to exit."); Console.ReadKey(); } } }

Источник

Шифр Гронсфельд

Доброго времени суток!
Помогите решить задачу)
Написать программу шифрования текста шифром Гронсфельда. В программе задается исходный файл с текстом формата txt и Ключ (количество цифр в ключе произвольное). Для шифрования использовать русский алфавит и сообщение на русском языке.
Заранее огромное спасибо!

Шифр Полибия. Программа выводит шифр в разной последовательности.
Реализую шифр полибия для русского алфавита. Возникла проблема при выводе шифра. Например при вводе.

Шифр
В общем прога для зашифровки, расшифровки текста. Можно сделать через присвоению каждому символу.

Шифр Гронсфельда
Каждый символ сообщения сдвигается на k ключ того же алфавита. Например,сообщение "абвгд" при.

Шифр Плейфера
Здравствуйте, для начала расскажу что за шифр такой: Для начала берется матрица и в первую очередь.

Лучший ответ

Сообщение было отмечено Kova как решение

Решение

По сути делается шифровка примерно так:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
using System; using System.Linq; using System.Text; namespace Test { internal class Program { private static void Main(string[] args) { Console.WriteLine(GronsfeldEncryption("Восточный экспресс", "1934")); Console.ReadLine(); } /// /// Шифрование текста через шифр Гронсфельда ///  /// Строка, которую надо зашифровать /// Ключ /// public static string GronsfeldEncryption(string _text, string _key) { string alphabet = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдежзийклмнопрстуфхцчшщьыъэюя0123456789 "; int[] keys = _key.Select(ch => (int)Char.GetNumericValue(ch)).ToArray(); StringBuilder sb = new StringBuilder(); for (int i = 0; i  _text.Length; i++) { sb.Append(alphabet[(alphabet.IndexOf(_text[i]) + keys[i % keys.Length]) % alphabet.Length]); } return sb.ToString(); } } }

Источник

Читайте также:  Python importing local files
Оцените статью