Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Нужно написать класс 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

6 лет назад
zhil
41 годУкраина
17 лет в сервисе
Был
11 дней назад
Выбранный исполнитель
BDEsoft
43 годаРоссия
17 лет в сервисе
Был
3 месяца назад
6 лет назад
$30
1 день
Все отлично! Будем работать и дальше.
Хороший заказчик. Буду рад сотрудничать еще раз.
  • Похожие заказы
  • $130

    По примеру прикреплённой схемы нужно создать адаптивный мажоритарный элемент голосования (2 из 3), в котором на 3 резервных модуля подаем идентичные данные(к примеру 0 или 1), но так же подаем сигнал ошибки рассогласования, чтобы хотя ...

    Прикладное ПОнет заявок
    Закрыт
    6 лет назад
  • Нужно доработать существующий проект на Yii2. Есть подробное написанное ТЗ. Нужен программист на yii2, который изучит ТЗ и реализует его. Выполнение проекта подразумевает соблюдение требований к коду и организации работы, написание миграций. От кандидата: хорошее знание yii2 ...

    Закрыт
    6 лет назад
  • Вот перечень основных требования к программе [b]Input[/b]: картинка размером больше чем: 600х315 (png; jpeg) [b]Output[/b]:  1. Картинка с точным размером: 600х315 (png) 2. На картинку накладывается dark overlay с предопределённой прозрачностью 3. Текст на картинке, который вбивается в программе. Алгоритм ...

    Закрыт
    6 лет назад
  • $500

    Разработка нового модуля "Система опросов и контроля качества обслуживания "для существующего ПО Quartech.ru. На почту вышлю демо версию ПО ,Нужен будет договор на передачу прав и исходников. После окончания разработки готов поговорить о дальнейшем долгосрочном сотрудничестве.Существующий проект [url=http://www.quartech.ru/]http://www.quartech.ru[/url] написан ...

    Закрыт
    6 лет назад
  • Нужен программист для разработки модуля электронного архива со знанием:  1. C#, ASP.NET MVC  2. Entity Framework (подход Code First)  3. Javascript (желательно знание Knockoutjs)  4. Знания HTML, CSS для интеграции верстки  5. KnockOut  Тз на задачу предоставлю.

    Закрыт
    6 лет назад
  • Надо создать ISO образ MacOS High Sierra 10.13.4 под установку на виндовую виртуалку Oracle VirtualBox, чтобы работал xcode. На старые версии из AppStore он не ставиться. Тот у кого есть макбук может это сделать вообще без ...

    Закрыт
    6 лет назад
  • Нужно разработать несколько видеофильтров на OpenCV (C++), подробности кандидатам.   Опыт подобных работ  обязателен.  Только индивидуальные разработчики, не компании и не посредники.

    Прикладное ПОнет заявок
    Закрыт
    6 лет назад
  • Всем привет. Нужна программа или скрипт, суть ее должна заключаться в автоматической регистрации на одном и том же сайте, используя при этом подготовленные аккаунты. Это если коротко, кто желает поговорить индивидуально - пишите свой вк\телеграм - обговорим ...

    Закрыт
    6 лет назад
  • Вообщем ситуация такая. Есть программа для обработки прайс листа, но поставщик внёс какие то изменения в прайс, в результате чего программа перестала работать. Необходимо внести правки в программу. Скорее всего C#. Во вложении файлы Обрабатываемый ...

    Прикладное ПО1 исполнитель
    Завершен
    6 лет назад