На нашем сайте Вы сможете найти готовые курсовые и дипломные работы по программированию
Сейчас работаем

Сетевой TCP-чат [C#, WPF]

Задание на программу:

Необходимо разработать программное решение, которое представляет из себя клиент-серверное приложение с возможностью обмена сообщениями в зашифрованном виде, используя RSA-шифрование.

Описание программы:

Разработанный сетевой чат представляет из себя клиент-серверное приложение, в котором:

  • Клиент: WPF/MVVM - приложение на языке C# с элементом RSA-шифрования;
  • Сервер: консольное приложение на .NET Framework;RSA шифрование реализовано вручную.

Для шифрования символа выбирается его номер из таблицы текущей кодировки (UTF-8/ASCII) в приложении.

Содержание отчёта (10 страниц):

1 Постановка задачи
2 Исходные данные 
    2.1 Клиент 
    2.2 Сервер
3 Особые ситуации   
    3.1 Ограничения на использования программы (уникальность данных)   
    3.2 Процесс обмена ключевой информацией   
    3.3 Инсталяция программы (нет необходимости)   
    3.4 Запуск программы
4 Математические методы и алгоритмы решения задач
5 Форматы представления данных
6 Структура проекта
7 Результаты работы программы
8 Исходный текст программы

Содержание архива:

  • папка с исходным проектом в Visual Studio 2019 (подойдёт Visual Studio 2012 и выше);
  • папка только с исполняемыми файлами для удобства;
  • отчёт по программе.

Дополнительно:

  • Чтобы запустить сервер не на стандартных настройках, необходимо запустить сервер через командную строку и передать в качестве параметров IP и порт:

  • Для демонстрации в университете можно просто узнать IPv4 компьютера (Сетевые подключения -> Ethernet -> Сведения), на котором будет запущен сервер и запустить его с этим IP, а в приложениях-клиентах указать IP и порт выбранный ранее.

Фрагмент программного кода:

using System;
using System.Collections.Generic;
using System.Numerics;
using System.Text;

namespace Encrypted {
    public class RSA    {
/// Проверка готовности ключей и шифрование
        public string[] Encrypt(string text, long publicE, long publicN)        {
            if (!_isReady)
                throw new ArgumentException("Method Initialize not called");
            return Encode(text, publicE, publicN);
        }
/// Проверка наличия установленных ключей и дешифрирование
        public string Decrypt(string[] data)        {
            if (!_isReady)
                throw new ArgumentException("Method Initialize not called");
            return Decode(data, local_D, n);
        }
/// Шифрование методом RSA
        private string[] Encode(string text, long e, long n)        {
            var data = new List<string>();
            BigInteger num;
            foreach (var ch in text)            {
                int index = ch;
                num = BigInteger.ModPow(index, e, n);
                data.Add(num.ToString());
            }
            return data.ToArray();
        }
/// Дешифрирование методом RSA
        private string Decode(string[] data, long d, long n)        {
            var strBuilder = new StringBuilder();
            BigInteger num;
            foreach (var item in data)            {
                var val = new BigInteger(Convert.ToInt64(item));
                num = BigInteger.ModPow(val, d, n);
                strBuilder.Append((char)num);
            }
            return strBuilder.ToString();
        }
/// Получить свой приватный ключ
        private long GetPrivatePartKey(long fi, long e)        {
            long d = e + 1;
            while (true)            {
                if ((d * e) % fi == 1)
                    break;
                d++;
            }
            return d;
        }
/// Получить свой публичный ключ для обмена
        private long GetPublicPartKey(long fi)        {
            long e = fi - 1;
            while (true)            {
                if (PrimeNumberGenerator.IsPrime(e) &&
                    e < fi &&
BigInteger.GreatestCommonDivisor(new BigInteger(e), new BigInteger(fi)) == BigInteger.One)
                    break;
                e--;
            }

            return e;
        }
    }
}
Купить 3200,00 
Сразу после оплаты Вы получите работу на электронную почту. Файлы отправляются автоматически. Исходник программ Вы сможете отредактировать, как Вам нужно.
Комментарии (0)

kostyaLem

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегистрированые пользователи имеют возможность комментировать работы
Похожие работы
Тип Название Рейтинг Категория Стоимость
Курсовая Игра Пазлы C# WPF 0 .NET (C#) 3 500,00
Курсовая Игра Тетрис C# WPF 0 .NET (C#) 3 500,00
Исходник Исходника калькулятора на WPF C# 46 .NET (C#) 700,00
Исходник Учет продаж (NET 5.0, C#, WPF, SQL Server) -2 .NET (C#) 2 500,00
Исходник Спортивный магазин C# (WPF, SQL Server, SQLite) new 0 .NET (C#) 2 500,00
Другие работы автора
Тип Название Рейтинг Категория Стоимость
Исходник АИС База данных "Настольные игры" (C#, WinFroms, SQLite) 0 .NET (C#) 3 000,00
Курсовая АИС Складского учета (C#, WinForms) 14 .NET (C#) 2 500,00
Курсовая АИС Учёта заказов станции технического обслуживания (C#,WinForms,SQL Server) 0 .NET (C#) 4 000,00
Лабораторная Алгоритм Банкира C# 0 .NET (C#) 450,00
Лабораторная База данных Книг (C#/WPF/SQLite) 0 .NET (C#) 2 600,00
Новые работы
Тип Название Рейтинг Категория Стоимость
Контрольная Театр (C#, WinForms, Access) new 0 .NET (C#) 1 500,00
Исходник Автошкола (C#, WPF, SQL Server, SQLite) new 0 .NET (C#) 2 500,00
Исходник Программа Парадокс дней рождения Python new 0 Python 700,00
Исходник ИС Налогоплательщики С# + SQL Server new 0 .NET (C#) 2 500,00
Исходник Логическая игра "Бейглз" Python new 0 Python 700,00
Купить

3200,00 

Сразу после оплаты Вы получите работу на электронную почту. Файлы отправляются автоматически. Исходник программ Вы сможете отредактировать, как Вам нужно.

Заказать через

EncryptedChat.rar
2467967
Оцени работу

рейтинг

Категории
Сетевой TCP-чат [C#, WPF]
Разработанный сетевой чат представляет из себя клиент-серверное приложение, в котором: Клиент: WPF/MVVM - приложение на языке C# с элементом RSA-шифрования; Сервер: консольное приложение на .NET Framework; RSA шифрование реализовано вручную. Для шифрования символа выбирается его номер из таблицы текущей кодировки в приложении.
Категория: Образование
Стоимость: 3200,00