Фрилансеры предложат решение вашей задачи уже через несколько минут!
Публикация заказа не займет много времени.
8 месяцев назад
Андрей Жилин
36 лет, Украина
11 лет в сервисе
Был онлайн 21 час назад
8 месяцев назад

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

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

8 месяцев назад
Дмитрий Беляев
37 лет, Россия
11 лет в сервисе
Был онлайн 4 часа назад

$30

1 день

ТОП-5 — Прикладное ПО

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

8 месяцев назад
Алексей В.
25 лет, Россия
8 месяцев в сервисе
Был онлайн 7 месяцев назад
8 месяцев назад
Дмитрий Беляев
37 лет, Россия
11 лет в сервисе
Был онлайн 4 часа назад
ТОП-5 — Прикладное ПО

Похожие заказы

Модуль(класс) на C++

Необходимые знания: - ООП; - С++; - Borland C++ Builder. Нужно написать класс <Мастер записи CD> объединяющий готовый функционал записи на CD и интерфейс пользователя, компонент записи на CD я вам предоставлю. Интерфейс должен поддерживать неск...

Нужна разработка интернет-радио.

Нужно разработать интернет радио. Должна быть реализована возможность проигрывания с базы данных сервера, или через http:// Должна присутствовать кнопка пуск и стоп, регулятор звука. С выбранным разработчиком, я буду обсуждать детали при переписке.

Нужна нейронная сеть

Нужна приемлемо работающая нейронная сеть. Язык программирования не играет роли для предварительного проекта. Качество сети можно оценить по прогнозированию поведения синусоиды, триггера или любых типовых числовых данных, которые традиционно использу...

Нужна прога на Pascal (можно Delphi)

требуеться прога на паскале (возможно delphi) прога : надо что бы два многогранника, с гранями разного цвета, могли совершать несколько операций. Опирации должны быть следующии: 1) сдвиг (три оси) 2) поворот(360) 3) масштабировние 4) протыкане др

Требуется написать небольшую программу

Требуется написать небольшую программу. Суть ее следующая: есть данные, их нужно один раз ввести, а потом они автоматически заполняются по соответсвующим документам. Остальные подробности по аське, телефону или email.

Нужна супер голова

Нужна прога под win03 которая бы обновляла страничку http://outlet.us.dell.com/ARBOnlineSales/topics/global.aspx/arb/online/en/InventorySearch?c=us&cs"&l=en&sЯh хотя бы 5 раз в секунду. Есть мнение что это невозможно: А как считаете ...

Нужно написать Таблицу Прямого Доступа

Срочно!!! Нужно написать Таблицу Прямого Доступа (ТПД) Для разрешения колизий вспомогательная таблица в которой используется повторное хеширование. Ключ - номер телефона (7 значный); Размер основной - 1024; вспомогательной - 512; Количество

Нужно сделать 3D программу - визуализатор

У нас есть файл с массивом 3D точек с цветом в каждой точке Реализовано: Триангуляция по этим точкам Совмещение 2х поверхностей Вычесление обьёма между этими поверхностями Есть DLL и тестовая программа которая всё это делает Нужно изпользуя данное,

Класс универсальной формы

Язык: C# Создание и тестирование класса универсальной формы, содержащей: - меню; - toolsbar (под меню); - нижнюю статусную строку; - 2 grid’а (master->detail); - панель над правым grid’ом; - панель между toolsbar’ом и grid’ами; - панель между grid

Срочно нужна помощь в решении задачи на C++

Нужна помощь в решении задачи. Работу нужно сделать в ближайшие 2-3 дня, т.е. не позднее 24.12.2005 ICQ 283-895-859 Разработать программу следующей игры (рабочее название «Аннексия-6»). Игровое поле – область на плоскости, разбитая решеткой, состоя