Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 63, средняя оценка - 4.90
MrKawaii
1 / 1 / 0
Регистрация: 14.05.2012
Сообщений: 12
#1

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

27.05.2012, 12:06. Просмотров 12930. Ответов 16
Метки нет (Все метки)

Здравствуйте, пытаюсь зашифровать слово, через ключ.
http://www.cyberforum.ru/cpp-beginners/thread1760004.html
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;
}
Получаются разные символы типо сердечек и тому подобное, так и должно быть?
И как сделать обратно, то есть расшифровать полученное в исходный текст?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2012, 12:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Шифрование текста (C++):

Шифрование текста
необходимо создать программу что бы зашифровать и расшифровать данный текст...

Шифрование и дешифрование текста
Народ вот програма для шифрования текста мне нужно переделать так штоб били...

Шифрование текста. XOR
Помогите с шифрование текста...с числоми вроде получалось. Что значит эта...

Курсовая: шифрование текста.
Здравствуйте. В связи с рядом причин(главная конечно лень xD ), свою курсовую я...

Шифрование текста в файле
проблема в то что в процессе работы программа должна считывать текст в файле и...

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

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

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

Что делал:

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

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

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

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

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

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

Еще возможен алгоритм, когда ключ ставится в начало файла, затем идет шифрация всего остального, а сам ключ шифруется на заранее известные байты (допустим, на последние).
1
Topotun
89 / 48 / 10
Регистрация: 16.09.2012
Сообщений: 207
17.09.2012, 22:50 #13
Предлагаю ознакомиться сначала с основами криптографии, а потом уже от простого к сложному идти.
0
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 301
18.09.2012, 00:39 #14
Я уже достаточно узнал) Счас начну знакомиться с основами, дойду до сложного, тему подыму.) Просто мы в универе криптографию вобще не проходим, решил просто для себя, для общего развития так сказать).
Спасибо всем за помощь.
0
windows98a
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 2
13.06.2013, 14:33 #15
Пример хорошего шифрования
0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
13.06.2013, 15:22 #16
Цитата Сообщение от windows98a Посмотреть сообщение
Прежде чем писать свои алгоритмы шифрования и утверждать, что шифр получился хорошим, необходимо проанализировать криптостойкость хотя бы с помощью известных атак. А так, пустые слова и никому ненужный алгоритм. Есть проверенные гос. стандарты, проверенные многими криптоаналитиками, к чему огород городить.
0
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 ÂûïîëГ*ГҐГ*Г®.");();();
};
0
09.06.2015, 19:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2015, 19:17
Привет! Вот еще темы с решениями:

Простое шифрование текста
Здравствуйте! Решаю несложную задачу, но почему-то ошибка во втором тесте. Вот...

Написать программу: шифрование текста
Чтобы зашифровать текст, записанный с помощью русских букв и знаков препинания,...

Осуществить шифрование текста из файла
Доброго времени суток! Никак не могу разобраться со следующим заданием: ...

Задача на шифрование текста, язык Cи.
Произвести шифрование текста согласно вводимому ключу , который представляет...


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

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

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