文字を数字に変換し、暗号化関数f(p)=(3p + 7)mod 26を適用してから、数字を文字に戻すことにより、メッセージNEEDHELPを暗号化します。回答:暗号化された形式:UTTQCTOA。
誰かがこの答えを得た方法を私に説明してもらえますか
文字を数字に変換し、暗号化関数f(p)=(3p + 7)mod 26を適用してから、数字を文字に戻すことにより、メッセージNEEDHELPを暗号化します。回答:暗号化された形式:UTTQCTOA。
誰かがこの答えを得た方法を私に説明してもらえますか
まず、各文字に番号を割り当てる必要があります。
A = 0; B = 1; C = 2 ....
次に、取得した数値に関数を適用し、文字に変換します。
N は 13 なので、13 * 3 = 39、+ 7 = 46、mod 26 = 20
逆変換、20 = U
文のすべての文字でそれを行うと、暗号化された形式になります
これを行う C# コードは次のとおりです。
private static string encrypt(string s)
{
char[] tmp = new char[s.Length];
int i = 0;
foreach (char c in s)
{
tmp[i] = (char)((((c - 'A') * 3 + 7) % 26) + 'A');
i++;
}
return new string(tmp);
}
そしてここであなたの復号化関数(これは面倒ですが動作します):
private static string decrypt(string s)
{
string res = s;
for (int i = 0; i < 5; i++)
res = encrypt(res);
return res;
}