Расшифровка Файла

Тема в разделе "Общие вопросы по С и С++", создана пользователем Vasilii14, 28 окт 2011.

Статус темы:
Закрыта.
  1. Vasilii14

    Vasilii14 Гость

    Здравствуйте, существует алгоритм шифрования файла.

    Вот алгоритм:

    Код (C++):
    #include <stdio.h>

    int main(int argc, char *argv[])
    {
    FILE* fp,*fo;
    unsigned char key[16];  //Ключ шифрования
    unsigned char ck;         //Свертка пароля
    unsigned char buf[16];
    int i,n;

    if(argc!=4)
    {
    printf("Usage:\n\t myencrypt source.file.name encrypted.file.name password\n");
    return 0;
    }

    n = strlen(argv[3]);

    // Упаковываем пароль в один байт
    for(i=0;i<n;i++)
    ck^=i%2?argv[3][i]:(argv[3][i]+i*5)%255;
    //Генерируем ключ длиной 16 байт из одного байта
    for(i=0;i<16;i++)
    key[i]=(char)((ck^(char)i*13)+203);

    fp = fopen(argv[1],"rb+");
    fo = fopen(argv[2],"wb+");

    n=strlen(argv[1]);

    for(i=0;i<n;i++)
    argv[1][i]^=key[i%16];

    fwrite(&n,sizeof(n),1,fo);
    fwrite(argv[1],1,n,fo);

    do{
    n=fread(buf,1,16,fp);

    for(i=0;i<n;i++)
    buf[i]^=key[i];

    fwrite(buf,1,n,fo);
    }while(!feof(fp));


    fclose(fp);
    fclose(fo);
    }
    Необходимо либо вывести 50 различных подходящих паролей, либо написать программу расшифровывающую исходный файл.
    Не могли бы вы подсказать алгоритм расшифровки? Просто не могу понять, каким образом добиться расшифровки. Заранее спасибо!
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    А чему у тебя ровна переменная ck?
    Откуда этот код?
     
  3. Vasilii14

    Vasilii14 Гость

    Итак дана программа, которая шифрует данные. На входе имеет имя входного файла, имя выходного, и ключ. То есть строка вызова этой программы будет myencrypt file.ext file.enc пароля. Это значит, что будет зашифрован файл file.ext на выходе будет зашифрованый файл file.enc. Чтобы передать параметры в отладчик программы, необходимо зайти в свойства проекта, выбрать вкладку Debug. И вписать там аргументы вызова программы.

    Вот условие. В институте лабораторная работа, не могу додуматься с чего вообще начать, все сдал, а эту подсунули, так еще и не объяснили как делать
     
  4. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Ну так, начинай с изучения языка С/С++
     
  5. Vasilii14

    Vasilii14 Гость

    Да дело не в этом, не знаю с чего начать вплане решения задачи о дешифровки. С языком все в порядке. Хотя бы способ, как можно расшифровать. Я просто не понимаю алгоритм, с чего начинать
     
  6. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Так у тебя алгоритм шифрования не работает. Зачем в этом случае думать об алгоритме расшифровки?
     
  7. Vasilii14

    Vasilii14 Гость

    Ну вот так нынче в институтах дают задания значит ) Ну ладно, извините тогда за беспокойство

    Добавлено: Ну а вообще, впринципе, на каком принципе строится расшифровка, при знании алгоритма?
     
  8. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Поясните своему преподу, что в этой строке:
    переменная ck изначально не инициализирована.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей