秘密鍵は、暗号化の数字を考慮しません。どのようにして各文字を文字と数字で置き換えるかを数字に変更するには、XOR各文字を暗号化キーで置き換えます。これは私がこれまでに書いた暗号化コードです...どこに間違っているのか知ることができます....出力は正確ではありません。秘密鍵の拡張子
string Encrypt (string s)
{
string cipher = s;
int size = s.length();
for(int i = 0; i < size ; i++)
{
if(isalpha(cipher[i]))
{
int x = static_cast<int>(cipher[i]) ; //changing to ascii code
if ((x >= 88 && x <= 90) || (x >= 120 && x <= 122))
x = x - 23;
else
x = x + 3;
cipher[i] = static_cast<char>(x); //changing back to ascii char
cipher[i] ^= 5; // XOR with 5
}
else if(isdigit(cipher[i]))
{
int x = static_cast<int>(cipher[i]) ;
cout << x ;
if (x >= 55 && x <= 57)
x = x - 7;
else
x = x + 3;
cipher[i] = static_cast<char>(x);
cipher[i] ^= 5;
}
}
return cipher ;
}
あなたが説明しているのはもはやシーザー暗号ではないので、実装方法はまったくあなた次第です。 – duskwuff
このタスクを既に解決している人がたくさんいます。彼らの解決策を見つけようとしましたか?簡単な検索を行うことによって? –