Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
 Аватар для daruwanov
77 / 58 / 8
Регистрация: 10.03.2011
Сообщений: 354

Как и чем зашифровать файл перед тем как передать его серверу/клиенту

22.01.2012, 01:18. Показов 3563. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, такое вот условие есть некий сервер, к которому подключаются клиенты, и могут пересылать друг другу данные - это файлы, разных расширений - в данном контексте это не особо играет роль.

Мне нужно что бы перед отправкой файл подвергался кодированию\шифровке - а принимающая сторона могла его принять и разшифровать - допустим по некому ключу - который она получит от отправляющей стороны.

Суть моего вопроса состоит в том - даже не знаю как правильно выразить - допустим что бы в БД хранились несколько вариантов способов шифрования данных (ну или не в бд тогда как и где хранить) и при шифровании выбирался произвольный метод случайным образом...

так вот меня интересует 2 вещи
1) как правильно хранить алгоритмы- извлекать из и использовать
и
2) какие лучше алгоритмы использовать...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.01.2012, 01:18
Ответы с готовыми решениями:

Необходимо при первом посещении страницы передать клиенту файл компонента ActiveX, а затем его зарегестрировать в реестре.
У меня встала такая проблема. Необходимо при первом посещении страницы передать клиенту файл компонента ActiveX, а затем его...

Как передать файл от сервера клиенту?
Нужно организовать передачу файлов на основе TCP/IP. Как передать файл от сервера на клиент? Есть проект:

Как передать файл серверу
Мне нужно передать файл серверу. Пробую делать так: Клиент: OpenFileDialog of = new...

9
 Аватар для ibmpc
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
22.01.2012, 14:58
Цитата Сообщение от daruwanov Посмотреть сообщение
как правильно хранить алгоритмы- извлекать из и использовать
Хранимые процедуры? Хотя наверное нет.
Цитата Сообщение от daruwanov Посмотреть сообщение
какие лучше алгоритмы использовать...
Посмотрите в сторону алгоритмов шифрования и выберите тот который подходит по вашим требованиям: быстрота исполнения, надежность, легкость реализации.
Цитата Сообщение от daruwanov Посмотреть сообщение
а принимающая сторона могла его принять и разшифровать - допустим по некому ключу - который она получит от отправляющей стороны.
Такие схемы шифрования уже существуют в некоторых алгоритмах (общий ключ(открытый), личный ключ).

AES насколько знаю показывает хорошее быстродействие.
RSA думаю как раз под ваш случай подойдет этот алгоритм.
RSA как раз построен на основе двух ключей как вам и необходимо. Одним данные шифруются другим расшифровываются.
RSA в C#
1
2 / 2 / 2
Регистрация: 14.11.2010
Сообщений: 62
22.01.2012, 16:33
код хафмана, шенона-фано тебе в помощь
1
 Аватар для daruwanov
77 / 58 / 8
Регистрация: 10.03.2011
Сообщений: 354
22.01.2012, 20:12  [ТС]
мне бы хотелось бы что бы было несколько разных алгоритмов... - думаю найти их не так сложно и реализовать... мне больше интересно.. как каждый из них в бд загнать... что бы потом извлекать и использовать...
0
 Аватар для ibmpc
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
22.01.2012, 20:14
Цитата Сообщение от daruwanov Посмотреть сообщение
как каждый из них в бд загнать
Какая БД если не секрет?
0
 Аватар для daruwanov
77 / 58 / 8
Регистрация: 10.03.2011
Сообщений: 354
22.01.2012, 20:17  [ТС]
MS SQL Server 2008 R2 Enterprise
0
 Аватар для ibmpc
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
22.01.2012, 20:23
Цитата Сообщение от daruwanov Посмотреть сообщение
и могут пересылать друг другу данные
То есть файл шифруется у одного клиента и расшифровывается у другого при получении? Шифрование и декодирование на стороне клиента как я понимаю. Сервер в роли синхронизатора ключей и метода шифрования?

Цитата Сообщение от daruwanov Посмотреть сообщение
в БД хранились несколько вариантов способов шифрования данных (ну или не в бд тогда как и где хранить) и при шифровании выбирался произвольный метод случайным образом...
Значит выбирается произвольно на стороне клиента при шифровании. На сервер посылается только какой из методов был выбран (его ID например или Hash с ним связанный). И необходимые второму клиенту для расшифровки данные отправляются на сервер (ключ). Алгоритмы шифрования и дешифрирования хранятся у обоих клиентов, так как им всем этим и заниматься. Можно конечно хранить на сервере и предоставлять клиенту только нужный алгоритм только на время выполнения операции.
1
 Аватар для daruwanov
77 / 58 / 8
Регистрация: 10.03.2011
Сообщений: 354
22.01.2012, 20:53  [ТС]
Ну а если хранить их на сервере. В каком виде -хранить их в базе? Или хранения именно в логике сервера? Тогда как отослать клиенту тот или иной алгоритм
0
 Аватар для ibmpc
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
23.01.2012, 11:22
Цитата Сообщение от daruwanov Посмотреть сообщение
В каком виде -хранить их в базе? Или хранения именно в логике сервера?
Думаю суть не в том где именно и как на сервере они будут храниться.
Цитата Сообщение от daruwanov Посмотреть сообщение
как отослать клиенту тот или иной алгоритм
есть такая тема что можно передать код который клиент и выполнит (вирусы используют уязвимости для выполнения кода переданного по сети) для шифрования своих данных. Именно непосредственно код. Ищите как реализовать в google. Можно пересылать к примеру клиенту маленькую dll библиотеку с одним алгоритмом и из нее вызывать метод (который может иметь одно и то же имя и параметры для разных алгоритмов) - Reflection. Информации по рефлексии и прочему тоже много с примерами. Можно придумать другой подход.
Лично я бы использовал передачу кода (чистый исходник C# с алгоритмом) клиентскому приложению для выполнения. Причем в шифрованном виде желательно. Использовал бы RSA качественно реализованный по всем правилам и защищенное соединение. Клиенту достаточно иметь закрытый личный ключ и алгоритм дешифрования.

Wiki Хранимая процедура:
В некоторых СУБД возможно использование хранимых процедур, написанных на любом языке программирования, способном создавать независимые исполняемые файлы, например, на C++ или Delphi. В терминологии Microsoft SQL Server такие процедуры называются расширенными хранимыми процедурами и являются просто функциями, содержащимися в Win32-DLL. А, например, в Interbase и Firebird для функций, вызываемых из DLL/SO, определено другое название — UDF (User Defined Function). В MS SQL 2005 появилась возможность написания хранимых процедур на любом языке .NET, а от расширенных хранимых процедур в будущем планируется отказаться.
Можно использовать эти возможности для хранения алгоритмов шифрования на сервере, пересылать клиентам думаю тоже можно и т.д.
1
 Аватар для daruwanov
77 / 58 / 8
Регистрация: 10.03.2011
Сообщений: 354
23.01.2012, 15:19  [ТС]
Спасибо всем за консультации. Будем пробовать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.01.2012, 15:19
Помогаю со студенческими работами здесь

Создать в WCF-службе файл (поток Stream) и передать его клиенту
Такой вопрос: нужно создать в WCF-службе файл (поток Stream) и передать его клиенту. Клиент этот поток получает и соответствующим образом...

Передать от серверу клиенту ехе файл
Всем привет! Задача заключается в том что бы передать ехе файл от сервера клиенту, если файл имеет размер допустим 30Мв, его же не...

Как отправить текст клиенту которые не присоединен к серверу зная его ip и порт через ServerSocket?
Как отправить текст клиенту которые не присоединен к серверу зная его ip и порт через ServerSocket?

Можно ли получить размер загружаемого файла перед тем как скачать его?
Хотя на самом деле мне нужно узнавать, скачался ли файл полностью. и без ошибок или нет. Хотел узнавать размер а потом сравнивать после...

Как клиенту подключиться к серверу?
Добрый день! Подскажите, как можно решить задачу, в локальной сети из нескольких компьютеров есть сервер, с которым нужно связаться...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru