Шифровать и дешифровать ConnectionString на нескольких устройствах - PullRequest
0 голосов
/ 25 апреля 2019

Задача

Я занимаюсь разработкой приложения для UWP, в котором я использую хранилище таблиц каталогов Azure (поэтому я должен зашифровать строку подключения).

Он должен быть зашифрован один раз, но должен быть дешифрован на другом устройстве.

Как и где я могу хранить ключ шифрования?

Какой алгоритм мне использовать для этого?

Пытались

Я попробовал алгоритм RSA, который нашел здесь: http://www.japf.fr/2013/05/rsa-cryptography-between-a-winrt-and-a-dotnet-app/

Но я не могу сохранить ключи в файле JSON ... Я не понимаю, почему

Ожидаемое

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

1 Ответ

0 голосов
/ 14 мая 2019

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

Я просто преобразовываю байтовый массив в шестнадцатеричную строку, чтобы сохранить его как строку в файле JSON.

using System.Linq;

public static byte[] HexToByteArray(string s)
        {
            return Enumerable.Range(0, s.Length)
                     .Where(x => x % 2 == 0)
                     .Select(x => Convert.ToByte(s.Substring(x, 2), 16))
                     .ToArray();
        }

        public static string ByteArrayToHex(byte[] b)
        {
            return BitConverter.ToString(b).Replace("-", "");
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...