Я создаю простую программу шифрования.Я добавляю символы к символам для создания нового символа.
На данный момент новый символ 'char' часто представляется как '?'.
Я предполагал, что переменная char имеетМаксимальная сумма и после ее передачи она возвращается к 0.
Предполагаемая логика:
если char a == 1 && char z == 255, то 256 должны == a.
Это не так.
Этот фрагмент добавляет символ к символу.Он часто выводит что-то вроде:
for (int i = 0; i < half; ++i) {
halfM1[i] = halfM1[i] + halfP1[i];
halfM2[i] = halfM2[i] + halfP2[(half + i)];
}
printf("\n%s\n", halfM1 );
printf("%s\n", halfM2);
Возвращает:
a???
3d??
Этот фрагмент удаляет добавленный символ, и строки возвращаются в нормальное состояние.
for (int i = 0; i < half; ++i) {
halfM1[i] = halfM1[i] - halfP1[i];
halfM2[i] = halfM2[i] - halfP2[(half + i)];
}
printf("\n%s\n", halfM1 );
printf("%s\n", halfM2);
возвращает:
messagepart1
messagepart2
Код технически работает, но я хотел бы, чтобы шифрование было в символах.
Если вопрос о том, почему «половина» везде.Сообщение и ключ разделены пополам, поэтому первая половина и вторая половина сообщения имеют отдельное шифрование.