Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2014, 01:47   #1
MaxAvatar
 
Регистрация: 07.11.2014
Сообщений: 5
По умолчанию Надо написать программу по шифрованию.

Необходимо написать программу, которая считывает текст словаря из файла до конца файла, потом сумму кодов всех символов каждого слова делит на 256 и берёт остаток от этого деления и выводит этот ключ в файл, потом полученные числа ключа прибавляет к кодам символа текста который мы ввели в программе и потом всё это заносит в отдельный файл. Потом расшифровывает. И потом выводит статистику, какой символ в какой зашифровался и сколько раз. Нельзя использовать массивы. Только файлы
MaxAvatar вне форума Ответить с цитированием
Старый 27.11.2014, 07:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я правильно понимаю: Ты не пытался и пытаться не можешь по "техническим" причинам?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.11.2014, 09:40   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

MaxAvatar, любопытно, а программа из вашей темы "Потерял исходники (ЧЕСТНО!) и надо декомпилировать exeшник в C++..."
(выложенный там exe-шник Encryption1.exe) разве не такую шифрацию делает?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.11.2014, 10:26   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну так там не поверили, что исходники потерял, а не просто кинул исполнителя и решил еще тему создать.
p51x вне форума Ответить с цитированием
Старый 27.11.2014, 20:49   #5
MaxAvatar
 
Регистрация: 07.11.2014
Сообщений: 5
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Ну так там не поверили, что исходники потерял, а не просто кинул исполнителя и решил еще тему создать.
Уже почти дописал свой говнокод. Только баг появился. Пробелы не выводит при расшифровке.

Код:
#include <iostream> 
#include <fstream> 

using namespace std;

void key_please()
{
	ifstream dict("dict.txt", ifstream::in | ifstream::binary);
	ofstream key("key.txt", ifstream::out | ifstream::binary | ifstream::trunc);
	unsigned char sum = 0;
	unsigned char data;
	data = dict.get();
	while (dict.good())
	{
		while ((data != ' ') && (dict.good()))
		{
			sum += data;
			data = dict.get();
		}
		key << int(sum) % 256 << ' ';
		sum = 0;
		data = dict.get();
	};
	dict.close();
	key.close();
}

void encrypt_please()
{
	ifstream key("key.txt", ifstream::in | ifstream::binary);
	ofstream encrypt("encrypted.txt", ifstream::out | ifstream::binary | ifstream::trunc);
	unsigned int buf[3];
	unsigned int sum = 0;
	unsigned char data;
	unsigned char input;
	unsigned int n = 0;
	cin >> input;
	while (input != '.')
	{
		data = key.get();
		while (data != ' ')
		{
			buf[n] = int(data);
			data = key.get();
			n++;
		};
		--n;
		if (n == 0) { sum += (buf[0] - 48); }
		if (n == 1) { sum += ((buf[0] - 48) * 10) + (buf[1] - 48); }
		if (n == 2) { sum += ((buf[0] - 48) * 100) + ((buf[1] - 48) * 10) + (buf[2] - 48); }
		encrypt << char(int(input) + sum);
		sum = 0;
		n = 0;
		cin >> input;
	};
	key.close();
	encrypt.close();
}

void decrypt_please()
{
	ifstream encrypt("encrypted.txt", ifstream::in | ifstream::binary);
	ifstream key("key.txt", ifstream::in | ifstream::binary);
	ofstream decrypt("decrypted.txt", ifstream::out | ifstream::binary | ifstream::trunc);
	unsigned int buf[3];
	unsigned int sum = 0;
	unsigned char data;
	unsigned char input;
	unsigned int n = 0;
	input = encrypt.get();
	while (!encrypt.eof())
	{
		data = key.get();
		while (data != ' ')
		{
			buf[n] = int(data);
			data = key.get();
			n++;
		};
		--n;
		if (n == 0) { sum += (buf[0] - 48); }
		if (n == 1) { sum += ((buf[0] - 48) * 10) + (buf[1] - 48); }
		if (n == 2) { sum += ((buf[0] - 48) * 100) + ((buf[1] - 48) * 10) + (buf[2] - 48); }
		decrypt << char(int(input) - sum);
		cout << char(int(input) - sum);
		sum = 0;
		n = 0;
		input = encrypt.get();
	};
	key.close();
	encrypt.close();
	decrypt.close();
}

int main()
{
	key_please();
	encrypt_please();
	decrypt_please();
}

Последний раз редактировалось Stilet; 27.11.2014 в 21:38.
MaxAvatar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Надо написать программу на C++ svob Общие вопросы C/C++ 2 13.04.2013 18:38
Надо написать программу 3D, 15000р sergey_f5 Фриланс 4 11.10.2011 13:23
Надо написать программу mbb0b Фриланс 1 15.11.2010 09:11
надо написать программу iptash Фриланс 8 11.03.2009 19:39
Написать 2 задачи по шифрованию Yaga Фриланс 19 11.01.2009 21:38