Здравствуйте! Нужно реализовать на основе ECB (собственно, без использования библиотеки Cryptography для CBC) шифрование в режиме CBC (для алгоритма AES). Возникло несколько вопрос: 1) как можно исходную byte[] последовательность разделить на несколько блоков (насколько понимаю, блок должен быть 128 бит). 2) Как производить XOR вектора инициализации и блока открытых данных? (опять таки, на данный момент данные хранятся в byte[] массивах)
Сейчас делаю так:
List<string> Blocks = Divider(text, 16); // text - исходный открытый текст, разделяю его по 16 байт, считаю каждый элемент List - блоком.
string result = "";
for (int j = 0; j < Blocks.Count; j++)
{
result += Xor(Blocks[j], IV);
byte[] block = EncryptEcb(ConvertBytes(result)); // ConvertBytes - перевод в byte[] строки, EncryptEcb - AES шифрование в режиме ECB.
IV = block;
}
Метод Xor (вероятно, логически неверно):
private static string Xor(string message, byte[] key)
{
string result = "";
for (int i = 0; i < message.Length; i++)
result += (char)(message[i] ^ key[i]);
return result;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
День добрый! Суть моего вопроса заключается в следующем: возможно ли, используя C#, работать с WiFi, то есть получать список доступных сетей,...
Есть ListBox в который добавляются файлы через OpenFileDialogКак по нажатию на Button найти информацию в интернете о выбранной строке в ListBox? То есть пользователь...