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

принцип блочного шифрования - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Наследование и двусвязный список http://www.cyberforum.ru/cpp-beginners/thread386091.html
1.Постронить точка->отрезок->треугольник.Вывести на экран рисунок. Я ее почти закончил,делал по Лафоре.Но проблема в том что делаю на dev++,а там нет библиотеки <graphics.h> и <msoftcon.h> .И я не знаю какие функции использовать чтобы нарисовать треугольник #include<iostream> #include<conio.h> #include<msoftcon.h> //не рабочая библиотека using namespace std; class point
C++ Дано натуральное число n . Определить , входит ли указанная цифра в десятичную запись n*n*n (n в кубе) и подсчитать сколько раз. Дано натуральное число n . Определить , входит ли указанная цифра в десятичную запись n*n*n (n в кубе) и подсчитать сколько раз. помогите написать программу через цыкл! http://www.cyberforum.ru/cpp-beginners/thread386089.html
Решение задачи Коши методом Эйлера и Рунге-Кутты C++
Доброго времени суток всем:) Писал прогу для решения задачи Коши методом Эйлера и Рунге-Кутты на С++. Вроде бы все реализовал, но при запуске почему то вылетает. Вот код: #include "stdafx.h" #include <stdio.h> #include <math.h> #include <conio.h> #include <iostream> const int n=5; using namespace std;
В матрице найти максимальный элемент C++
В матрице найти максимальный элемент. Если он расположен на главной диагонали, заменить элементы первой строки и первого столбца на значение найденного максимального элемента. есть идеи?
C++ Задача на метод дихотомии(половинного деления) http://www.cyberforum.ru/cpp-beginners/thread386061.html
Друзья, помогите пожалуйста с такой задачей, нужно найти минимум функции х^2+e^-x метод дихотомии(половинного деления). Не объяснили ,сказали самим попробовать понять. Впринципе сама суть метода понятна, но никак не могу сообразить, как это будет выглядеть на си. Если кто-нибудь сможет написать код этой программы на Си с комментариями, буду очень признателен.
C++ массивы 1) сумму элементов в тех столбцах, которые не содержат отрицательных элементов; 2) минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. можете обьяснить что вообще требуеться сделать я уже сам сделаю просто не могу понять условие подробнее

Показать сообщение отдельно
solomid
1 / 1 / 0
Регистрация: 22.09.2011
Сообщений: 86
17.11.2011, 19:21     принцип блочного шифрования
проблема такая,я понимаю как работает блочный шифр,но не могу реализовать его для реального шифрования файлов. например вот самый элементарный шифр,он правильно работает для определенного колличества hex блоков в файле
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
51
52
53
54
55
56
57
58
59
60
61
62
63
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
using namespace std;
typedef unsigned int uint32_t;
 
void encrypt(unsigned int num_rounds, uint32_t *v, uint32_t const *k) {
    unsigned int i;
    uint32_t v0=v[0], v1=v[1], sum=0, delta=0x9E3779B9;
    for (i=0; i < num_rounds; i++) {
        v0 += (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);
        sum += delta;
        v1 += (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]);
    }
    v[0]=v0; v[1]=v1;
}
void decrypt(unsigned int num_rounds, uint32_t *v, uint32_t const *k) {
    unsigned int i;
    uint32_t v0=v[0], v1=v[1], delta=0x9E3779B9, sum=delta*num_rounds;
    for (i=0; i < num_rounds; i++) {
        v1 -= (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]);
        sum -= delta;
        v0 -= (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);
    }
    v[0]=v0; v[1]=v1;
}
 
int main()
{
    setlocale(LC_ALL,"rus");
    uint32_t k[ 8 ] = {1010101010,1010101010,1010101010,1010101010,1010101010,1010101010,1010101010,1010101010};
    uint32_t v[ 2 ] = {0xbaddface, 0xdadbad12};
    cout << "Текст: " << hex << v[ 0 ] << " " << v[ 1 ] << endl;
    encrypt( 32, v, k );
    cout << "Зашифррованный текст: " << hex << v[ 0 ] << " " << v[ 1 ] << endl;
    decrypt( 32, v, k );
    cout << "Расшифрованный текст: " << hex << v[ 0 ] << " " << v[ 1 ] << endl;
    FILE * f = fopen("1.txt","r");
    for (int i=0;i < 2;i++)
        {
        fscanf(f,"%X",&v[i]);
        }
        fclose(f);
    FILE * f2 = fopen("2.txt","w");
    encrypt(32,v,k);
    for(int i =0;i < 2;i++)
    {
        fprintf(f2,"%X",v[i]);
    }
    f2 = fopen("2.txt","r");
    for(int i =0;i<2;i++)
    {
        fscanf(f2,"%X",&v[i]);
    }
    fclose(f2);
    FILE * f3 = fopen ("3.txt","w");
    decrypt(32,v,k);
    for(int i=0;i<2;i++)
    {   
        fprintf(f3,"%X",v[i]);//
    }
    fclose(f3);
}
а как сделать чтобы он кодировал любой объем любой информации? мне кажется что тут код строк на 20, но я не могу реализовать,как ни крути...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru