Генерируем таблицу символов:
private static char[,] genTable()
{
char[,] table = new char[26,26];
for (int i = 0; i < 26; i++)
{
int off = i;
for (int j = 0; j < 26; j++)
{
if (off == 26)
{
off = 0;
}
table[i, j] = (char)(97 + off);
off++;
}
}
return table;
}
Шифратор:
public static string encrypt(string text, string key)
{
string ntext =null;
int k;
int t;
char[,] table = genTable();
for (int i = 0,j = 0; i < text.Length; i++,j++)
{
if (j == key.Length) { j = 0; }
k = (int)key[j] - 97;
t = (int)text[i] - 97;
ntext += Convert.ToString(table[t,k]);
}
return ntext;
}
Дешифратор
public static string decrypt(string text,string key) {
string ntext=null;
int k;
int t;
char[,] table = genTable();
for (int i = 0,j = 0; i < text.Length; i++,j++)
{
if (j == key.Length) { j = 0; }
k = (int)key[j] - 97;
t = (int)text[i] - 97;
for (int y = 0; y < 26; y++)
{
if (table[y, k] == text[i]) { ntext += table[y,0]; break; }
}
}
return ntext;
}
Комментариев нет:
Отправить комментарий