Как передать ключ шифрования AES? - PullRequest
0 голосов
/ 13 марта 2012

На моем Blackberry я создаю ключ AES и шифрую данные.Затем я шифрую ключ AES с помощью RSA перед отправкой клиенту c # .net

Ключ AES является байтовым массивом.Как я могу преобразовать это в строку, чтобы она могла быть зашифрована RSA и затем расшифрована на стороне .net?

Нужно ли преобразовывать в строку?

Я передаю данныечерез JSON.Я думаю, мой вопрос действительно, как передать массив но в JSON?Какую кодировку я бы использовал?

Спасибо.

1 Ответ

1 голос
/ 13 марта 2012

Вы можете использовать следующее, что безопасно для URL и относительно легко визуально проверить. Это занимает немного больше памяти, чем Convert.ToBase64String, но не должно быть проблемой с ключом шифрования фиксированной ширины.

string MyKey = BitConverter.ToString(MyAESKey);  // dash removal is trivial here

OR

string MyKey = Convert.ToBase64String(MyAESKey);

Пример кода

byte[] a = new byte[256/8];
Random random = new Random();
random.NextBytes(a);

string base64 = Convert.ToBase64String(a);
byte [] b = Convert.FromBase64String(base64);

if (a.SequenceEqual(b))
    // true


string c = BitConverter.ToString(a);

string[] c1 = c.Split('-');
byte[] d = new byte[arr.Length];
for (int i = 0; i < arr.Length; i++) d[i] = Convert.ToByte(c1[i], 16);

if (a.SequenceEqual(d))
    // true
...