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

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

Войти
Регистрация
Восстановить пароль
 
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
#1

Анализ текста - C++

02.07.2013, 17:10. Просмотров 622. Ответов 8
Метки нет (Все метки)

Всем привет. Есть программа, которая шифрует файлы. Я хотел бы перебором всех ключей (ключевое пространство небольшое) вычислить открытый текст. Вот в чём вопрос: каким образом компьютер может отличить окрытый текст от обычного набора символов?

Добавлено через 32 минуты
up....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2013, 17:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Анализ текста (C++):

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

Морфологический анализ текста - C++
Здравствуйте, нужна помощь в написании программы: Создать программу проводящую морфологический анализ текста (а именно Личных местоимений),...

Анализ тональности текста - C++
Нужно написать программу анализа тональности текста. Решил воспользоваться самым примитивным способом, подсчет "положительных" и...

Частотный анализ текста - C++
Вообщем задача, Есть текст в файле, необходимо определить, какие символы и сколько раз встречаются в тексте. Упорядочить их в порядке...

Частотный анализ текста - C++
Помогите решить задачу! Дана строка, содержащая текст, набранный заглавными русскими буквами. Провести частотный анализ текста, т.е....

Символьный анализ текста - C++
2. Дана строка. Выполните символьный анализ текста. Ниже представлен рекомендуемый вид диалога во время работы программы. Данные, вводимые...

8
Kuzia domovenok
02.07.2013, 17:15
  #2

Не по теме:

при чём тут С++?

0
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
02.07.2013, 17:23  [ТС] #3
Программа на C++)
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
02.07.2013, 17:34 #4
выкладывай. Надеюсь, ты имел в виду
Цитата Сообщение от bgm123 Посмотреть сообщение
Есть программа, которая шифрует файлы и её исходники на C++

Не по теме:

Кулхацкерством тут заниматься не будут, если что.

0
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
02.07.2013, 18:11  [ТС] #5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
выкладывай. Надеюсь, ты имел в виду
Вопрос состоит не в анализе коде. А в способе определения является ли текст открытым? Вот например, как программно определить является ли следующий текст открытым: type uipoksl hohk?

Добавлено через 1 минуту
Используется симметричный алгоритм
0
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
02.07.2013, 18:24  [ТС] #6
В этой программе открытый текст разбивается на порции по 64 символа. Далее, для каждой порции на основе
8 значного исходного ключа вырабатывается гамма. Гамма вырабатывается с использованием функции rand из стандартной библиотеки C. Сам алгоритм является симметричным. Ниже описаны основные функции и exe-ик.


Вот основные реализация основных функций:

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
43
44
45
46
47
48
49
50
#define MAX_OFFSET 100
#define SIZE_UKEY 8
#define SIZE_BLOCK 64
#define MAX_KEY_VALUE 256
 
//хеш функция
unsigned int StrToInt(char *str)
{
    unsigned int result = 0;
    int len = strlen(str);
 
    for(int i = 0; i < len; i++)
        result = (result * 10 + str[i]) % UINT_MAX;
        
    return result;
}
 
//генератор гаммы
void getKey(char *key, char *ukey, int size_key)
{
    unsigned int hash = StrToInt(ukey);
    static int offset = hash % MAX_OFFSET;
 
    for(int i = 0; i < SIZE_UKEY; i++){
        srand(ukey[i]);
        srand(hash + rand() + ukey[i]);
        for(int j = 1; j <= offset; j++)
            rand();
        for(int k = i; k < size_key; k += SIZE_UKEY)
            key[k] = rand();    
    }
 
    strncpy(ukey, key, SIZE_UKEY);
}
 
 
void CryptFile(FILE *in, FILE *out, char *ukey)
{
    char buf[SIZE_BLOCK + 1] = {0};
    char key[SIZE_BLOCK + 1] = {0};
    int count;
 
    while(!feof(in)){
        count = fread(buf, sizeof(char), SIZE_BLOCK, in);
        getKey(key, ukey, SIZE_BLOCK);
        for(int i = 0; i < count; i++)
            buf[i] ^= key[i];
        fwrite(buf, sizeof(char), count, out);
    }
}
0
Вложения
Тип файла: rar exe.rar (14.3 Кб, 4 просмотров)
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
02.07.2013, 19:56  [ТС] #7
Запускается через командную строку
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
02.07.2013, 20:00 #8
для проверки случайных последовательностей на принадлежность открытым текстам того или иного класса имеются детерминированные и вероятностные модели открытых текстов. поищите в интернете, немало на эти темы имеется литературы.
1
Praktolock
65 / 65 / 1
Регистрация: 29.11.2011
Сообщений: 300
03.07.2013, 04:52 #9
А дешифрующей программы нет?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2013, 04:52
Привет! Вот еще темы с ответами:

Лексический и синтаксический анализ текста - C++
Доброго времени суток, нужно написать курсач по программированию - реализовать алгоритм лексического анализа предложений -...

Чтение/анализ строки текста - C++
Уважаемые господа, помогите советом. Нужно строку текста (из четного кол-ва символов) разбить в на фрагменты по два символа (задать...

Лексический и синтаксический анализ текста - C++
Доброго времени суток, товарищи.Сейчас учусь в универе и дали задание курсовой работы на с++.Я читаю его и понятия не имею что нужно...

Частотный анализ текста (символьный) - C++
Частотный анализ текста (символьный). (Подсчитывается относительная частота встречаемости каждого символа в тексте.) Текст вводится из...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
03.07.2013, 04:52
Ответ Создать тему
Опции темы

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