0
문자를 숫자로 변환하고 암호화 함수 f (p) = (3p + 7) mod 26을 적용한 다음, 숫자를 자로 다시 변환하여 메시지 도움말을 암호화하십시오. Ans : 암호화 된 양식 : UTTQ CTOA. 글자를 숫자로 번역하여 메시지가 필요합니다. 답은 UTTQ CTOA ... 어떻게됩니까?
사람은 당신이 각 문자에 번호를 할당해야합니다 먼저 대답문자를 숫자로 변환하고 암호화 함수 f (p) = (3p + 7) mod 26을 적용한 다음, 숫자를 자로 다시 변환하여 메시지 도움말을 암호화하십시오. Ans : 암호화 된 양식 : UTTQ CTOA. 글자를 숫자로 번역하여 메시지가 필요합니다. 답은 UTTQ CTOA ... 어떻게됩니까?
사람은 당신이 각 문자에 번호를 할당해야합니다 먼저 대답을 얻었는지 나에게 설명해주십시오 수 :
A = 0; B = 1;
N 그래서 13 * 3 = 39 + 7 = 46 다음, 13이 될 것이다 : C = 2 ....
는 당신은 당신이 얻을와 문자로 다시 변환 숫자에 함수를 적용 당신이 당신의 문장의 모든 문자에 그것을 할 경우 = 20
모드 (26)가 다시 변환, 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;
}
덕분에 ... 당신이 U를 얻기 위해 (20)을 적용 않았다 어디? 그게 정확히 내가 이해하지 못했던 것입니다. – Ris
A부터 Z까지의 모든 문자를 쓰고 그 앞에 숫자 (0부터 시작)를 쓰면 U가 앞에 20 개가있을 것입니다. – ppetrov