Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/210: Рейтинг темы: голосов - 210, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 14.05.2012
Сообщений: 12
1

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте, пытаюсь зашифровать слово, через ключ.
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2012, 12:06
Ответы с готовыми решениями:

Шифрование текста, табличная замена текста
Один из простейших способов шифровки текста состоит в табличной замене каждого символа другим...

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

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

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

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

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

цифровая подпись ГОСТ Р 34.10-2001 на эллиптических кривых
блочный симметричный шифр ГОСТ 28147-89
блочный симметричный шифр (американский гос.стандарт) AES
1
36 / 36 / 1
Регистрация: 12.10.2011
Сообщений: 333
17.09.2012, 21:27 6
П.С. Я никак не могу понять один момент, каким образом криптор работает с каким-нибудь файлом или программой?. Я вот подумал, а не придется ли мне сразу получить каким-нибудь образом исходный код какова-нибудь файла, закриптовать, и что дальше?) Мне ведь этот зашифрованный файл еще и открывать придется и он должен будет расшифроваться при запуске. Или как-то по другому?
0
95 / 54 / 10
Регистрация: 16.09.2012
Сообщений: 207
17.09.2012, 21:27 7
Если ты хочешь кодировать-декодировать файлы, то их без труда можно найти введя в гугл один запрос. Если хочешь шифровать, то нужно ознакомиться с методами шифровки и определить, что для тебя приемлемо (шифрование с открытым ключом и тп). Ну а от этого дальше плясать.
0
36 / 36 / 1
Регистрация: 12.10.2011
Сообщений: 333
17.09.2012, 21:37 8
Мне нужен именно собственноручный криптор, а не готовенький код в интернете). С ознакомлением проблем не будет, у меня много литературы по этому поводу + гугл. Короче говоря, я хочу написать свою программу для криптозащиты.
0
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
95 / 54 / 10
Регистрация: 16.09.2012
Сообщений: 207
17.09.2012, 21:39 10
Например ты читаешь какой нибудь текст в программе через криптор и хочешь его зашифровать, ты считываешь файл, затем переводишь всё в биты (нолики и единички ) и только потом можно использовать шифрование, так как все алгоритмы шифрования основываются на изменении бит по какому либо правилу. Ну вот если простым языком, то как то так.
1
36 / 36 / 1
Регистрация: 12.10.2011
Сообщений: 333
17.09.2012, 21:41 11
"Посредством криптора шифруется оригинальный программный файл и в его начало записывается код, при запуске выполняющий расшифровку и выполнение зашифрованной программы."
Во, нашел в интернете. Вот что я хочу написать и услышать совета бывалых)
0
39 / 39 / 5
Регистрация: 14.09.2012
Сообщений: 85
17.09.2012, 21:57 12
Цитата Сообщение от DebieCooepr Посмотреть сообщение
"Посредством криптора шифруется оригинальный программный файл и в его начало записывается код, при запуске выполняющий расшифровку и выполнение зашифрованной программы."
Во, нашел в интернете. Вот что я хочу написать и услышать совета бывалых)
Это только один способ, когда ключ прячется в файле. Я решил для начала хотя бы шифровать на ключ, не задумываясь о способах его прятания и считывания, чего и тебе желаю.
Ну а так, в принципе, можно ключ прятать и в файле. Только чтобы его не шифровать нужно его байты раскидать по файлу в заранее известные места, ну и, разумеется, размер файла в таком случае должен быть больше чем максимальный номер байта.

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

Еще возможен алгоритм, когда ключ ставится в начало файла, затем идет шифрация всего остального, а сам ключ шифруется на заранее известные байты (допустим, на последние).
1
95 / 54 / 10
Регистрация: 16.09.2012
Сообщений: 207
17.09.2012, 22:50 13
Предлагаю ознакомиться сначала с основами криптографии, а потом уже от простого к сложному идти.
0
36 / 36 / 1
Регистрация: 12.10.2011
Сообщений: 333
18.09.2012, 00:39 14
Я уже достаточно узнал) Счас начну знакомиться с основами, дойду до сложного, тему подыму.) Просто мы в универе криптографию вобще не проходим, решил просто для себя, для общего развития так сказать).
Спасибо всем за помощь.
0
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 2
13.06.2013, 14:33 15
Пример хорошего шифрования
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
13.06.2013, 15:22 16
Цитата Сообщение от windows98a Посмотреть сообщение
Прежде чем писать свои алгоритмы шифрования и утверждать, что шифр получился хорошим, необходимо проанализировать криптостойкость хотя бы с помощью известных атак. А так, пустые слова и никому ненужный алгоритм. Есть проверенные гос. стандарты, проверенные многими криптоаналитиками, к чему огород городить.
0
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2015, 19:17
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru