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

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

7 лет назад
zhil
42 года
18 лет в сервисе
Был
2 месяца назад

Выбранный исполнитель

BDEsoft
44 года
18 лет в сервисе
Был
год назад
7 лет назад
$30
1 день
Все отлично! Будем работать и дальше.
Хороший заказчик. Буду рад сотрудничать еще раз.

Заявки фрилансеров

BDEsoft
44 года
18 лет в сервисе
Был
год назад
7 лет назад
  • Похожие заказы

  • $130

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

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

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

    Разработка нового модуля "Система опросов и контроля качества обслуживания "для существующего ПО Quartech.ru. На почту вышлю демо версию ПО ,Нужен будет договор на передачу прав и исходников. После окончания разработки готов поговорить о ...

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

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

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

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

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

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