-2
描述:
我正在寫/探索xor加密/解密在c + +代碼的樂趣。我詢問了有關這兩個主題的以前的問題:Very long string input to xor encryption program和String input xor encryption program。爲什麼我只能解密輸入流的前兩個字符?
我已經開發了下面的代碼,將提示用戶輸入一個字符串,它應該用代碼中的鍵異或字符串。這種加密方式的作用是我應該能夠輸入一個字符串並獲得一個加密的字符串。如果我通過相同的函數運行相同的加密字符串,我應該返回原始字符串。請參閱以下工作代碼。
#include <iostream>
#include <string>
using namespace std;
int main (void)
{
while (1)
{
string mystr;
cout << "What's the phrase to be Encrypted? ";
char key[11]="ABCDEFGHIJ"; //The Encryption Key, for now its generic
getline(cin, mystr);
string result;
for (int i=0; i<mystr.size(); i++) {
result.push_back(mystr[i]^key[i%11]);
cout << result[i];
}
cout << "\n";
}
return 0;
}
問題:
我只能把長的字符串2個字符到程序並能夠有一個加密的字符串,返回長度爲2的。如果我把了字符到程序中我會只返回前兩個原始人物。爲什麼是這樣?
請回答清楚的解釋和或例子。謝謝
'char key [11] =「ABCDEFGHIJK」; '應該拋出一個錯誤!數組最後只能包含10個字符和一個空字符。 – vidit
輸入字符串中的第三個字符是什麼? –
你的權利它的兩個長期,原因是因爲我有不同的東西在那裏是11,但我不想在互聯網上分享我的密碼,所以我改變了它。 – user2444074