Я пытаюсь зашифровать сообщение, при помощи AES (как клиент), но дело в том, что не совпадает последние 12 байтов:
СЕРВЕР - 3e106a0a312bdcc83d47f1768a53180ad8486bb188eb27aec1f1eede6d8a21a7
00d4a04e2882965a2b639b78c97bee40
КЛИЕНТ - 3e106a0a312bdcc83d47f1768a53180ad8486bb188eb27aec1f1eede6d8a21a7
f168b4bb4440b61b7b06e489457e6edc
Место несовпадения на новой строке. Алгоритм AES-256
byte[] Server_EncryptedHandshakeMessage = AesTool.Encrypt(Completed, client_write_key, client_write_iv, PaddingMode.PKCS7);
Обратите внимание - PaddingMode.PKCS7
Функция - Encrypt
:
internal static byte[] Encrypt(byte[] message, byte[] key, byte[] iv, PaddingMode PadMode )
{
AesCryptoServiceProvider Aes = new AesCryptoServiceProvider();
Aes.Mode = CipherMode.CBC;
Aes.KeySize = 128;
Aes.Padding = PadMode;
Aes.Key = key;
Aes.IV = iv;
ICryptoTransform encryptor = Aes.CreateEncryptor(key, iv);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream csDecrypt = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
{
using(BinaryWriter c = new BinaryWriter(csDecrypt))
{
c.Write(message);
}
}
return ms.ToArray();
}
}
Очень похоже на несовместимость PaddingMode
клиента и сервера. Для тестирования используйте и там и там PaddingMode.Zeros
, который заполнит остаток нулями. Подробнее можете почитать тут: msdn
.p.s примеры с байтами лучше всего приводить в hex виде (например 0x01, 0x02 или 01 02).
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Похожие темы были, но немного другого форматаКак я могу добавив dll в ресурсы (в частности я использую HtmlAgilityPack
Добрый деньНа сервере есть код на python который принимает координаты, декодирует их и пишет в файл на сервере