Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2015, 17:28   #1
alexander1994
 
Регистрация: 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;

}


}
}
alexander1994 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шифр замены по ГОСТ 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