По примеру прикреплённой схемы нужно создать адаптивный мажоритарный элемент голосования (2 из 3), в котором на 3 резервных модуля подаем идентичные данные(к примеру 0 или 1), но так же подаем сигнал ошибки рассогласования, чтобы хотя ...
Написать класс С# с нужным функционалом
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
Нужно написать класс DownloadManager для С# c методом update(), который реализовует безопасный апдейт программы.
Пошаговый алгоритм работы метода update()
1. Загружает урл https://somewebsite.com/some/file.json, с примерно таким содержимым
{
var1: value,
var2: value,
var3: value,
groupVar: base64_json,
groupVarRSAHashHEX: HEX_hash,
groupVar2: base64_json,
groupVarRSAHashHEX2: HEX_hash,
}
2. Переменные var1, var2, var3 заносит во внутренний масив, чтоб их можно было использовать в других классах, как-то типа DownloadManager.config.var1 или типа того в других классах
3. В groupVar и groupVar находяться строки, для которых нужно сгенерировать RSA подпись и проверить, чтоб она совпадала с groupVarRSAHashHEX/groupVarRSAHashHEX2. Если не совпадает - выбросить exception.
4. Если совпадает - нужно сделать base64_decode для groupVar и groupVar2, в результате получиться json вида
{
groupId: 123
group1Var1: value,
group1Var2: value,
group1Var3: value,
xorKey: someString,
group1Files: [
[
name: 'filename',
content: 'base64_encoded_content'
],
[
name: 'filename2',
url: 'http://domain.com/files/123/123123',
"emd5": "752a10022cf379ddeff7e1044eb1fd19",
"dmd5": "96ae5abe22369d13e76ad7c760d080ed"
],
]
}
5. Переменные group1Var1, group1Var2, group1Var3 нужно также сохранить во внутреннем массиве, чтоб их можно было использовать в других классах, как-то типа DownloadManager.config.var1 или типа того в других классах
6. Дальне нужно проверить, существует ли папка bin/{groupId}/ Если существует - вызывается приватный метод check, если не существует - download
7. download сохраняет файлы в папку bin/{groupId}/
Файлы бывают двух типов - текстовые и бинарные. Текстовые содержат 2 поля name - имя файла и content - base64_content.
В content также нужно заменять подстроки вида {var1} и {group1Var1} на значения из внутреннего масива
Бинарные файлы нужно вначале скачать с url, проверить md5 скачанного файла (поле emd5), проксорить файл используя xorKey, проверить md5 полученного "дешифрованного файла" - dmd5, сохранить его в bin/{groupId}/{name}
8. Check проверяет текстовые файлы (генерирует content и проверяет с содержимым на диске) и бинарные (по полю dmd5)
код для RSA шифрования можно легко нагуглить, например https://stackoverflow.com/questions/37531044/how-do-i-decode-a-base64-pcks-8-representation-of-a-private-key-in-net
Выбранный исполнитель
Заявки фрилансеров
Похожие заказы
- $130Прикладное ПОнет заявокЗакрыт7 лет назад
Нужно доработать существующий проект на Yii2. Есть подробное написанное ТЗ. Нужен программист на yii2, который изучит ТЗ и реализует его. Выполнение проекта подразумевает соблюдение требований к коду и организации работы, написание миграций. От ...
Прикладное ПО1 заявкаЗакрыт7 лет назадИмеется открытый код индикатора MT4 (вложен), нужно добавить алерт и пуш при смене цвета на конец свечи.
Прикладное ПОнет заявокЗакрыт7 лет назадВот перечень основных требования к программе Input: картинка размером больше чем: 600х315 (png; jpeg) Output: 1. Картинка с точным размером: 600х315 (png) 2. На картинку накладывается dark overlay с ...
Прикладное ПО6 заявокЗакрыт7 лет назад- $500
Разработка нового модуля "Система опросов и контроля качества обслуживания "для существующего ПО Quartech.ru. На почту вышлю демо версию ПО ,Нужен будет договор на передачу прав и исходников. После окончания разработки готов поговорить о ...
Прикладное ПО2 заявкиЗакрыт7 лет назад Нужен программист для разработки модуля электронного архива со знанием: 1. C#, ASP.NET MVC 2. Entity Framework (подход Code First) 3. Javascript (желательно знание Knockoutjs) 4. Знания HTML, CSS для интеграции верстки ...
Прикладное ПО1 заявкаЗакрыт7 лет назадНадо создать ISO образ MacOS High Sierra 10.13.4 под установку на виндовую виртуалку Oracle VirtualBox, чтобы работал xcode. На старые версии из AppStore он не ставиться. Тот у кого есть макбук может ...
Прикладное ПО1 заявкаЗакрыт7 лет назадНужно разработать несколько видеофильтров на OpenCV (C++), подробности кандидатам. Опыт подобных работ обязателен. Только индивидуальные разработчики, не компании и не посредники.
Прикладное ПОнет заявокЗакрыт7 лет назадВсем привет. Нужна программа или скрипт, суть ее должна заключаться в автоматической регистрации на одном и том же сайте, используя при этом подготовленные аккаунты. Это если коротко, кто желает поговорить индивидуально - пишите ...
Прикладное ПО5 заявокЗакрыт7 лет назадВообщем ситуация такая. Есть программа для обработки прайс листа, но поставщик внёс какие то изменения в прайс, в результате чего программа перестала работать. Необходимо внести правки в программу. Скорее всего C#. Во вложении файлы Обрабатываемый ...
Прикладное ПО1 исполнительЗавершен7 лет назад