Форум программистов, компьютерный форум CyberForum.ru

Шифрование текста - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 63, средняя оценка - 4.90
MrKawaii
1 / 1 / 0
Регистрация: 14.05.2012
Сообщений: 12
27.05.2012, 12:06     Шифрование текста #1
Здравствуйте, пытаюсь зашифровать слово, через ключ.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main()
{
    char str[] = "qwe";   // "пример"
    char key[] = "a2c";  // "пример"
 
    for(int i=0; i<3; i++)
       str[i] = str[i]^key[i];
        cout << str;
 
    return 0;
}
Получаются разные символы типо сердечек и тому подобное, так и должно быть?
И как сделать обратно, то есть расшифровать полученное в исходный текст?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2012, 12:06     Шифрование текста
Посмотрите здесь:

C++ Курсовая: шифрование текста.
шифрование текста в файле C++
C++ Задача на шифрование текста, язык Cи.
шифрование текста C++
Шифрование текста. XOR C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Topotun
87 / 46 / 7
Регистрация: 16.09.2012
Сообщений: 192
17.09.2012, 20:48     Шифрование текста #2
Да, так и должно быть. Чтобы расшифровать слово, нужно выполнить обратную операцию.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.09.2012, 20:52     Шифрование текста #3
"Наложить" гамму на шифртекст повторно, учитывая тождество
x ^ y ^ y = x
DebieCooper
 Аватар для DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 285
17.09.2012, 20:56     Шифрование текста #4
Не хочу новую тему создавать, напишу сюда. Хочу написать свой криптор на С++ который будет кодировать другие программы, либо файлы. Какие кодировки можете посоветовать? Или как это вообще реализовать?. У меня есть книга хорошая "Аграновский А.В., Хади Р.А - Практическая криптография, алгоритмы и их программирование - 2009", но я не знаю с чего начинать. Может найдется человек который уже делал что-нибудь подобное и подскажет?
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.09.2012, 21:14     Шифрование текста #5
Цитата Сообщение от DebieCooepr Посмотреть сообщение
Хочу написать свой криптор на С++ который будет кодировать другие программы, либо файлы.
шифрование и кодирование - разные вещи.

Цитата Сообщение от DebieCooepr Посмотреть сообщение
Какие кодировки можете посоветовать?
смотрите в сторону государственных стандартов. не просто так эти алгоритмы возведены до такой степени, например

цифровая подпись ГОСТ Р 34.10-2001 на эллиптических кривых
блочный симметричный шифр ГОСТ 28147-89
блочный симметричный шифр (американский гос.стандарт) AES
DebieCooper
 Аватар для DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 285
17.09.2012, 21:27     Шифрование текста #6
П.С. Я никак не могу понять один момент, каким образом криптор работает с каким-нибудь файлом или программой?. Я вот подумал, а не придется ли мне сразу получить каким-нибудь образом исходный код какова-нибудь файла, закриптовать, и что дальше?) Мне ведь этот зашифрованный файл еще и открывать придется и он должен будет расшифроваться при запуске. Или как-то по другому?
Topotun
87 / 46 / 7
Регистрация: 16.09.2012
Сообщений: 192
17.09.2012, 21:27     Шифрование текста #7
Если ты хочешь кодировать-декодировать файлы, то их без труда можно найти введя в гугл один запрос. Если хочешь шифровать, то нужно ознакомиться с методами шифровки и определить, что для тебя приемлемо (шифрование с открытым ключом и тп). Ну а от этого дальше плясать.
DebieCooper
 Аватар для DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 285
17.09.2012, 21:37     Шифрование текста #8
Мне нужен именно собственноручный криптор, а не готовенький код в интернете). С ознакомлением проблем не будет, у меня много литературы по этому поводу + гугл. Короче говоря, я хочу написать свою программу для криптозащиты.
veverix
39 / 39 / 2
Регистрация: 14.09.2012
Сообщений: 85
17.09.2012, 21:37     Шифрование текста #9
Я использовал шифрацию по ключу, запоролся на записи в файл.

Что делал:

1. Функция создания ключа. Ключ желательно подлиннее, поскольку чем длиннее ключ, тем сложнее найти его. Генерация в массив char, например. unsigned char key[32] - 512-битный ключ.

2. Функция шифрации/дешифрации. Включает некоторые битовые обратимые операции, так же опционально еще что-то (например может добавлять в ключ MAC-адрес если нужно привязать файл к компьютеру)

Способы шифрации:

1. Логическая операция xor.
2. Ассемблерная операция ror (сдвиг вправо с переносом вылетающего бита влево, на пустое место)
3. Перенос местами байтов в участке кода.

Из файла считываются строки == ключу, шифруются и записываются в память. После чего входящий файл многократно перезаписывается рандомными данными (чтобы избежать восстановления) и затем заполняется шифрованными байтами.
Topotun
87 / 46 / 7
Регистрация: 16.09.2012
Сообщений: 192
17.09.2012, 21:39     Шифрование текста #10
Например ты читаешь какой нибудь текст в программе через криптор и хочешь его зашифровать, ты считываешь файл, затем переводишь всё в биты (нолики и единички ) и только потом можно использовать шифрование, так как все алгоритмы шифрования основываются на изменении бит по какому либо правилу. Ну вот если простым языком, то как то так.
DebieCooper
 Аватар для DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 285
17.09.2012, 21:41     Шифрование текста #11
"Посредством криптора шифруется оригинальный программный файл и в его начало записывается код, при запуске выполняющий расшифровку и выполнение зашифрованной программы."
Во, нашел в интернете. Вот что я хочу написать и услышать совета бывалых)
veverix
39 / 39 / 2
Регистрация: 14.09.2012
Сообщений: 85
17.09.2012, 21:57     Шифрование текста #12
Цитата Сообщение от DebieCooepr Посмотреть сообщение
"Посредством криптора шифруется оригинальный программный файл и в его начало записывается код, при запуске выполняющий расшифровку и выполнение зашифрованной программы."
Во, нашел в интернете. Вот что я хочу написать и услышать совета бывалых)
Это только один способ, когда ключ прячется в файле. Я решил для начала хотя бы шифровать на ключ, не задумываясь о способах его прятания и считывания, чего и тебе желаю.
Ну а так, в принципе, можно ключ прятать и в файле. Только чтобы его не шифровать нужно его байты раскидать по файлу в заранее известные места, ну и, разумеется, размер файла в таком случае должен быть больше чем максимальный номер байта.

То есть, допустим, 32-битный ключ, байты в [7][3][10][12] номерах. Размер файла не меньше 12 байт.

Еще возможен алгоритм, когда ключ ставится в начало файла, затем идет шифрация всего остального, а сам ключ шифруется на заранее известные байты (допустим, на последние).
Topotun
87 / 46 / 7
Регистрация: 16.09.2012
Сообщений: 192
17.09.2012, 22:50     Шифрование текста #13
Предлагаю ознакомиться сначала с основами криптографии, а потом уже от простого к сложному идти.
DebieCooper
 Аватар для DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 285
18.09.2012, 00:39     Шифрование текста #14
Я уже достаточно узнал) Счас начну знакомиться с основами, дойду до сложного, тему подыму.) Просто мы в универе криптографию вобще не проходим, решил просто для себя, для общего развития так сказать).
Спасибо всем за помощь.
windows98a
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 2
13.06.2013, 14:33     Шифрование текста #15
Пример хорошего шифрования
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
13.06.2013, 15:22     Шифрование текста #16
Цитата Сообщение от windows98a Посмотреть сообщение
Прежде чем писать свои алгоритмы шифрования и утверждать, что шифр получился хорошим, необходимо проанализировать криптостойкость хотя бы с помощью известных атак. А так, пустые слова и никому ненужный алгоритм. Есть проверенные гос. стандарты, проверенные многими криптоаналитиками, к чему огород городить.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2015, 19:17     Шифрование текста
Еще ссылки по теме:

Шифрование текста C++
Шифрование текста. нужна подмога в дешифровке C++
Написать программу: шифрование текста C++

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

Или воспользуйтесь поиском по форуму:
Vasaabiii
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 1
09.06.2015, 19:17     Шифрование текста #17
Написал программу для шифрования текста, не могу разобраться почему не работает. Нужна помощь.




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
#include <iostream>
#include <string>
#include <cstdlib>
#include <cmath>
#include <windows.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
main()
{(0, "");*input, *output; int reglen=17, buflen=1000, inpathlen=1001, outpathlen=1001;reg[reglen], regbuf, buffer[buflen], i, j, counter=0;inpath[inpathlen], outpath[outpathlen], 
c;("Ââåäèòå ГЇГіГІГј ГЄ ГґГ*éëó, êîòîðûé áóäåò Г§Г*øèôðîâГ*Г* (äî 1000 ñèìâîëîâ):\n");
for (i=0; i<inpathlen; i++)
{[i]=getche();(inpath[i]==13) {break;};
};[i]='\0';("\n Ââåäèòå ГЇГіГІГј õðГ*Г*ГҐГ*ГЁГї Г§Г*øèôðîâГ*Г*Г*îãî ГґГ*éëГ* (äî 1000 ñèìâîëîâ):\n");
for (i=0; i<outpathlen; i++)
{[i]=getche();(outpath[i]==13) {break;};
};[i]='\0';=fopen(inpath, "r");=fopen(outpath, "a+");(input==NULL)
{("\n ГЋГёГЁГЎГЄГ* ïðè îòêðûòèè ГґГ*éëГ*");
}if (output==NULL)
{("\n ГЋГёГЁГЎГЄГ* ïðè ñîçäГ*Г*ГЁГЁ ГґГ*éëГ*");
}
{("\n\n Ââåäèòå êëþ÷ ГЁГ§ 17 ñèìâîëîâ (Гў ГЄГ®Г*öå ââîäГ* Г*Г*æìèòå Enter):\n");
for (i=0; i<reglen; i++)
{=getche();[i]=static_cast<int>(c);(i==reglen-1) {break;};
};("\n Èä¸ò îáðГ*áîòêГ* ГґГ*éëГ*...");
for (i=0; i<buflen; i++)
{(!feof(input)) {fscanf(input, "%c", &buffer[i]); counter++;};
};(i=0; i<counter; i++)
{[i]=buffer[i]^reg[0];=reg[0]^reg[1]^reg[2]^reg[3]^reg[7]^reg[12]^reg[14];(j=0; j<reglen; j++)
{[j]=reg[j+1];
};[reglen]=regbuf;
};(i=0; i<counter-1; i++)
{(output, "%c", buffer[i]);
};
};("\n ÂûïîëГ*ГҐГ*Г®.");();();
};
Yandex
Объявления
09.06.2015, 19:17     Шифрование текста
Ответ Создать тему
Опции темы

Текущее время: 01:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru