class Program
{
static void Main(string[] args)
{
int x = findInverse(7);
string w = "FDYMHQDCFIDJBIPWDKR";
string r = Decript(w, x);
Console.WriteLine(r);
Console.ReadLine();
}
static int findInverse(int n)
{
for (int i = 1; i < 500; i++)
{
int t = (26 * i) + 1;
int chkNum = t / n;
int chk = t % n;
if (chk == 0)
{
return chkNum;
}
}
return 0;
}
static string Decript(string word, int a)
{
string wrd = "";
for (int i = 0; i < word.Length; i++)
{
char c = word[i];
string t = DecriptString(c, a);
wrd = wrd + t;
}
return wrd;
}
static string DecriptString(char s, int d)
{
int chr = getNum(s);
int recover = d * (chr - 3) % 26;
string rslt = getChar(recover);
return rslt;
}
static string getChar(int i)
{
switch (i)
{
case 0: return "A"; break;
case 1: return "B"; break;
case 2: return "C"; break;
case 3: return "D"; break;
case 4: return "E"; break;
case 5: return "F"; break;
case 6: return "G"; break;
case 7: return "H"; break;
case 8: return "I"; break;
case 9: return "J"; break;
case 10: return "K"; break;
case 11: return "L"; break;
case 12: return "M"; break;
case 13: return "N"; break;
case 14: return "O"; break;
case 15: return "P"; break;
case 16: return "Q"; break;
case 17: return "R"; break;
case 18: return "S"; break;
case 19: return "T"; break;
case 20: return "U"; break;
case 21: return "V"; break;
case 22: return "W"; break;
case 23: return "X"; break;
case 24: return "Y"; break;
case 25: return "Z"; break;
}
return "";
}
static int getNum(char i)
{
switch (i)
{
case 'A': return 0; break;
case 'B': return 1; break;
case 'C': return 2; break;
case 'D': return 3; break;
case 'E': return 4; break;
case 'F': return 5; break;
case 'G': return 6; break;
case 'H': return 7; break;
case 'I': return 8; break;
case 'J': return 9; break;
case 'K': return 10; break;
case 'L': return 11; break;
case 'M': return 12; break;
case 'N': return 13; break;
case 'O': return 14; break;
case 'P': return 15; break;
case 'Q': return 16; break;
case 'R': return 17; break;
case 'S': return 18; break;
case 'T': return 19; break;
case 'U': return 20; break;
case 'V': return 21; break;
case 'W': return 22; break;
case 'X': return 23; break;
case 'Y': return 24; break;
case 'Z': return 25; break;
}
return -1;
}
}
No comments:
Post a Comment