|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.04.2015, 17:28 | #1 |
Регистрация: 17.05.2012
Сообщений: 9
|
Алгоритм криптографического преобразования ГОСТ 28147-89 Режим простой замены на C#
В общем шифрует на английском...как сделать чтоб на русском шифровала.?
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace lab_1_cripta { class Program { public static byte[] bt; static void Main(string[] args) { byte[] Key = { 0x33, 0x20, 0x6d, 0x54, 0x32, 0x6c, 0x65, 0x68, 0x20, 0x65, 0x73, 0x69, 0x62, 0x6e, 0x73, 0x73, 0x79, 0x67, 0x61, 0x20, 0x74, 0x74, 0x67, 0x69, 0x65, 0x68, 0x65, 0x73, 0x73, 0x3d, 0x2C, 0x20 }; byte[] bRepTab = { 0x4A,0x92,0xD8,0x0E,0x6B,0x1C,0x7F, 0x53, 0xEB,0x4C,0x6D,0xFA,0x23,0x81,0x07, 0x59, 0x58,0x1D,0xA3,0x42,0xEF,0xC7,0x60, 0x9B, 0x7D,0xA1,0x08,0x9F,0xE4,0x6C,0xB2, 0x53, 0x6C,0x71,0x5F,0xD8,0x4A,0x9E,0x03, 0xB2, 0x4B,0xA0,0x72,0x1D,0x36,0x85,0x9C, 0xFE, 0xDB,0x41,0x3F,0x59,0x0A,0xE7,0x68, 0x2C, 0x1F,0xD0,0x57,0xA4,0x92,0x3E,0x6B, 0x8C }; // Console.WriteLine(System.Text.Encod ing.ASCII.GetString(text1())); Coder cd = new Coder(); bt = text1(); cd.SetKey(Key); cd.SetReplaceTable(bRepTab); Console.WriteLine("\n"); byte[] prvst= cd.SimpleEncoding(bt); //кодирование простой вставкой Console.WriteLine("{0} - кодирование простой вставкой",System.Text.Encoding.ASCI I.GetString(prvst)); Console.WriteLine("{0} - декодирование простой вставкой\n",System.Text.Encoding.AS CII.GetString(cd.SimpleDecoding(prv st))); //декодирование byte[] s = cd.ImitationPaste(bt); // byte[] s={ 0x20, 0x65, 0x73, 0x69,0x74, 0x74, 0x67, 0x69}; byte[] gamm = cd.GammaСoding(bt,s); //кодирование гаммированием Console.WriteLine("{0} - кодирование гаммированием ",System.Text.Encoding.ASCII.GetStr ing(gamm)); Console.WriteLine("{0} - декодирование гамированием\n",System.Text.Encodin g.ASCII.GetString(cd.GammaСoding(ga mm,s))); byte[] gamm2 = cd.GammaWithFeedBackCoding(bt,s); //кодирование гаммированием c обратной связью Console.WriteLine("{0} - кодирование гаммированием c обратной связью", System.Text.Encoding.ASCII.GetStrin g(gamm2)); Console.WriteLine("{0} - декодирование гамированием c обратной связью\n", System.Text.Encoding.ASCII.GetStrin g(cd.GammaWithFeedBackCoding(gamm2, s))); byte[] imito = cd.ImitationPaste(bt); // имитовставка Console.WriteLine("{0} - имитовставка", System.Text.Encoding.ASCII.GetStrin g(imito)); // Console.WriteLine("{0} - декодирование имитовставки\n", System.Text.Encoding.ASCII.GetStrin g(cd.ImitationPaste(imito))); Console.ReadLine(); } static byte[] text1() { string str; do { Console.Write("введите текст кратный 8\n"); str = Console.ReadLine(); } while (str.Length % 8 != 0); byte[] tex1 = new byte[str.Length]; //int k = str.Length % 8, l = 0; for (int i = 0; i < str.Length; i++) { tex1[i] += Convert.ToByte(str[i]); } bt = tex1; return tex1; } } } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шифр замены по ГОСТ 28147-89 | Евгений-777 | Общие вопросы Delphi | 1 | 13.03.2015 13:42 |
ГОСТ 28147-89 | victor5133 | Безопасность, Шифрование | 0 | 08.11.2014 12:09 |
ГОСТ 28147-89 | VaDim12 | Фриланс | 5 | 15.11.2012 20:28 |
нужны исходники гост 28147-89 | indarium | Общие вопросы Delphi | 1 | 14.11.2012 16:14 |