Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
_nic
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 112
#1

Шифрование XOR не кодирует бинарные данные - C++

29.04.2014, 21:44. Просмотров 893. Ответов 12
Метки нет (Все метки)

Текст кодирует/декодирует нормально.Бинарные файлы НЕТ.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
char tst[]="fnfdnbdlfkbpfdgkgfdm";
wchar_t in[]=L"F:\\test\\1.exe";
wchar_t out[]=L"F:\\test\\2.exe";
 
void XOR_Crypt(char *out, char *in, long InLen, char *pass, long PassLen)
{
  for (long x=0; x<InLen; ++x)
  {
    out[x] += (char)(in[x]^pass[x%PassLen]);
  }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    char key[]="qwertyuiop";
    /*char *buf=(char*)malloc(4096);
    memset(buf,0,4096);
    char *DEbuf=(char*)malloc(4096);
    memset(DEbuf,0,4096);
    printf("%s\n",tst);
    XOR_Crypt(buf,tst,strlen(tst),key,strlen(key));
    printf("%s\n",buf);
    XOR_Crypt(DEbuf,buf,strlen(buf),key,strlen(key));
    printf("%s\n",DEbuf);*/
    HANDLE fIN=CreateFile(in,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
    LARGE_INTEGER sz={0};
    DWORD r,w;
    GetFileSizeEx(fIN,&sz);
    int LEN=sz.QuadPart;
    char *inbuf=(char*)malloc(LEN);
    char *cdbuf=(char*)malloc(LEN);
    char *outbuf=(char*)malloc(LEN);
    ReadFile(fIN,inbuf,LEN,&r,0);
    XOR_Crypt(cdbuf,inbuf,LEN,key,strlen(key));
    CloseHandle(fIN);
    XOR_Crypt(outbuf,cdbuf,LEN,key,strlen(key));
    HANDLE fOUT=CreateFile(out,GENERIC_WRITE,FILE_SHARE_WRITE,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
    WriteFile(fOUT,outbuf,LEN,&w,0);
    CloseHandle(fOUT);
    _getch();
    return 0;
}
В чем проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2014, 21:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шифрование XOR не кодирует бинарные данные (C++):

XOR шифрование - C++
Задание:Написать программу на выбранном языке программирования, реализующую описанный выше алгоритм для шифрования содержимого текстового ...

XOR шифрование - C++
Здравствуйте. Не хотел создавать ещё тему, но у меня не все гладко прошло с XOR шифрованием, не смотря на то, что там все просто. Не пойму...

Шифрование Xor'ом - C++
Добрый день, уважаемые) тут такое дело, сел делать курсач и столкнулся с проблемой. Работа по шифрованию бинарными операциями и...

Не выходит xor шифрование - C++
есть вот такой код string xorcrypt(const string&amp; str, const string&amp; key) { string retval; retval.resize(str.length()); for...

Шифрование текста. XOR - C++
Помогите с шифрование текста...с числоми вроде получалось. Что значит эта ошибка и как ее испрвить?..) #include &lt;iostream&gt; #include...

XOR шифрование/дешифрование - C++
Всем привет. Пож-ста помогите написать программу, шифрующую/дешифрующую xor маску. 2 Примера : N1 из FF FF FF FF D2...

12
nmcf
5533 / 4843 / 1641
Регистрация: 14.04.2014
Сообщений: 19,647
29.04.2014, 22:21 #2
Что это за конструкция? pass[x%PassLen]
0
_nic
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 112
29.04.2014, 22:30  [ТС] #3
Чтоб набор символов использовать, а не просто цифру, для ключа.Хотя и с просто цифрой бинарные файлы битые выходят.
0
gazlan
3133 / 1909 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
29.04.2014, 23:56 #4
Цитата Сообщение от _nic Посмотреть сообщение
В чем проблема?
Для начала, утечку памяти ликвидируйте. И используйте Memory Mapping вместо этого бреда.

P.S.

Основной цикл:

C++
1
2
3
4
5
6
7
8
9
10
   do
   {
      for (DWORD ii = 0; ii < dwXorSize; ++ii)
      {
         *(pSrcStr + dwSrcOfs++) ^= *(pXorStr + dwXorOfs++);
 
         dwXorOfs %= dwXorSize;
      }
   } 
   while (dwSrcOfs < dwSrcSizeLo);
0
_nic
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 112
30.04.2014, 00:38  [ТС] #5
gazlan
Я вас не понимаю(( СОВСЕМ.
0
gazlan
3133 / 1909 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
30.04.2014, 01:02 #6
И про утечку памяти не понимаете?
0
_nic
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 112
30.04.2014, 02:04  [ТС] #7
Цитата Сообщение от gazlan Посмотреть сообщение
И про утечку памяти не понимаете?
Где там утечка? Куча индивидуально для каждого процесса, это в конце концов не драйвер какой то, и то для этого есть ВМ.Смысл мне ненужные фри лепить, если это проект специальный сандбокс для тестирования алгоритмов.Могли бы вы подсказать что по существу и понятно ?
0
gazlan
3133 / 1909 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
30.04.2014, 02:43 #8
Цитата Сообщение от _nic Посмотреть сообщение
Могли бы вы
Могу. Но смысла продолжать не вижу. Все необходимые советы я вам уже дал. Вы их проигнорировали.
0
Вложения
Тип файла: 7z xor.7z (2.4 Кб, 13 просмотров)
_nic
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 112
30.04.2014, 12:00  [ТС] #9
Цитата Сообщение от gazlan Посмотреть сообщение
Могу. Но смысла продолжать не вижу. Все необходимые советы я вам уже дал. Вы их проигнорировали.
Это уже явный троллинг.И куда администрация смотрит?
0
SatanaXIII
Супер-модератор
Эксперт С++
5618 / 2653 / 246
Регистрация: 01.11.2011
Сообщений: 6,550
Завершенные тесты: 1
30.04.2014, 12:39 #10
Цитата Сообщение от _nic Посмотреть сообщение
Это уже явный троллинг
Это не то, что вы говорите, а отказ от дальнейшей помощи в виду того, что она должна была пойти в том же русле, которое вы либо не понимаете, либо игнорируете.
Цитата Сообщение от _nic Посмотреть сообщение
И куда администрация смотрит?
Вам в глаза.
1
_nic
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 112
30.04.2014, 14:54  [ТС] #11
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Это не то, что вы говорите, а отказ от дальнейшей помощи в виду того, что она должна была пойти в том же русле, которое вы либо не понимаете, либо игнорируете.
Я задал четкий и ясный вопрос почему текст ксориться в обе стороны ОК,а бинарные данные НЕТ.В ответ мне перед лицом мотыляют ЧСВ.Это не отказ,потому как не было помощи , это был явный троллинг.Потому как ответа ПО СУТИ, не было дано.
0
stima
490 / 342 / 40
Регистрация: 22.03.2011
Сообщений: 1,095
Завершенные тесты: 2
30.04.2014, 18:42 #12
Вообще меня тоже бесит, то что Вы не исправите явный "говнокод".

Что же касается сути, работайте с бинарным файлом как с бинарным файлом.
1
nmcf
5533 / 4843 / 1641
Регистрация: 14.04.2014
Сообщений: 19,647
30.04.2014, 19:06 #13
Автор, текстовые файлы нормально кодируются не в твоей программе, а там, откуда ты взял алгоритм, потому что он изначально сделан на String и суммирование в цикле подразумевает накопление символов в строку. А ты просто переделал всё на арифметику и ждешь, что это будет работать.
0
30.04.2014, 19:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2014, 19:06
Привет! Вот еще темы с ответами:

Шифрование строк [Метод XOR] - C++
Некорректное шифрование строк. Шифрование проводится с помощью метода XOR. // Использование XOR для шифрования и расшифровки...

Шифрование XOR не работает с кириллицей - C++
Проблема и никак не могу решить. Функция XOR возвращает при исходной строке &quot;съешь еще этих мягких мексиканских кактусов да выпей...

Шифрование умножением на бинарные матрицы - C++
Пытаюсь получить сделать шифрование на бинарные матрицы.Получился вот такой вот код.Ну почему выдает ошибку когда пытаюсь скомпилировать. ...

Записать в string или char бинарные данные - C++
Бъюсь второй день, не могу записать бинарные данные в переменную. Или может переменные не верные... У меня получается что если бинарная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru