Неправильно определяет символ
HELLO WORLD!!!21312sadahfa sdgfasg(следующий символ)dfuk qehljflahggf fj ahfjkashfsgfj agsjfas
Шифруется вот такой текст, с данной гаммой
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
но получается вот такой текст
HELLO WORLD!!!21312sadahfa sdgfasg(следующий символ)cfuk qehljflahggf fj ahfjkashfsgfj agsjfas
,
ошибка в одном символе, посмотрев код в двоичной системе при XoR d ^ i = 00001111
, то есть вообще не \n
или \r
но там всё равно есть \r\n
, что делать?
vector<size_t> searchEnter(string& key, string& newGamma){
vector<size_t> newIndexEnter;
bool addedElement = false;
size_t ciphertextSize = ciphertext.size();
for(size_t i = 0; i < ciphertextSize; ++i){
if(ciphertext[i] == '\n' || ciphertext[i] == '\r')
{
char target = '\n';
int b = 0;
int a = 0;
while(b==0)
{
char candidate = static_cast<char>(a);
if ((candidate ^ key[i]) == target) {
if (ciphertext[i] == '\r' && ciphertext[i+1] == '\n')
{
ciphertext[i] = candidate;
ciphertext.erase(i+1,1);
b=1;
newIndexEnter.push_back(i);
addedElement = true;
ciphertextSize--;
key = MainDecipher(ciphertext, newGamma);
}
else
{
ciphertext[i] = candidate;
b=1;
newIndexEnter.push_back(i);
addedElement = true;
}
}
a++;
}
}
}
if (!addedElement) {
newIndexEnter.push_back(-1);
}
return newIndexEnter;
}