Я пытаюсь реализовать AES для школьного проекта. Моя цель - вывести зашифрованный текст на экран и в текстовый файл. Шифрование идет полностью, как ожидалось, и я могу убедиться в этом, посмотрев на это:
for (int j = 0; j<object.words * 4; j++)
{
printf("%02x ", Encryptor.out[j]);
}
Текст, который он зашифровывает, «я так рад, что это работает», с 128-битным ключом «собака», и этот цикл печатает первые 16 символов шифрования, который гласит:
c8 88 45 0d 5d 40 ff 5b a4 55 91 c9 c4 00 f5 a4
Я убедился, что это то, что AES должен печатать в этом контексте. Позже у меня есть следующие строки вывода:
this is Encryptor.out[0] in cout: ╚
This is Encryptor.out[0] in printf with the format code '%02x': c8
Press any key to continue . . .
Мой вызов cout, вероятно, просто нуждается в коде форматирования, поэтому меня это не беспокоит. Осложнение в этой точке:
ofstream OutFile("Encrypted.txt");
Outfile << Encryptor.out[0];
На данный момент, единственное, что содержится в Encrypted.txt, это один символ 'È'. Я знаю, что c8 в шестнадцатеричном формате - это 'È' в ASCII, но я хочу, чтобы он напечатал исходное шестнадцатеричное значение.
Итак, в конечном итоге, мой вопрос: как мне сохранить этот символ в моем выходном файле как 'c8'? Есть ли код форматирования, который может использовать ofstream, или мне нужно прыгнуть через несколько обручей?
Спасибо, ребята!