Я создаю очень базовую программу шифрования с помощью XOR для шифрования пользовательского файла и дешифрования его снова. Что происходит, однако, когда я шифрую, я получаю длинную строку из тех же 6 букв, и когда я пытаюсь ее расшифровать, это не работает. Может ли кто-нибудь обнаружить проблему? Кроме того, я хочу заменить XOR базовым методом шифрования, но сохранить тот же код, кроме ключа. Это будет возможно? Благодаря!Очень простая программа шифрования
#include <stdio.h>
int main(int argc, char*argv[])
{
FILE *fp1, *fp2;
char* key;
int c;
key = argv[1];
if(*key != '\0')
{
fp1 = fopen(argv[2],"rb");
if(fp1 != NULL)
{
fp2 = fopen(argv[3],"wb");
if (fp2 != NULL)
{
while((c=getc(fp1)!=EOF))
{
if(!*key)key = argv[1];
c ^=*(key++);
putc(c, fp2);
}
fclose(fp2);
}
fclose(fp1);
}
}
return 1;
}
Ваш отступов может быть улучшена; например: первый fopen/fclose находятся в разных углублениях, вторая пара в том же отступе ... – pmg
Просто примечание: может быть неплохо проверить 'argc' и убедиться, что у вас достаточно аргументов для работы на –
'return 0;' обычно используется для указания успеха в операционной системе; 'return 1;' скорее всего указывает на сбой. Вы можете просмотреть свое возвращаемое значение. – pmg