Как бы вы отправили массив int через winsock? - PullRequest
0 голосов
/ 18 октября 2019

Итак, я просто провожу некоторые тесты по отправке зашифрованных сообщений через winsock (Да, я знаю, что SSH делает то же самое, просто для удовольствия.) Но моя проблема в том, чтобы на самом деле иметь возможность шифрования с помощью метода, который яЯ использую, мне нужно что-то большее, чем просто 8 бит (символ, массив здесь не будет работать.) Любая помощь?

#include <iostream>
#include <vector>
#include <fstream>

#include <WS2tcpip.h>
#pragma comment(lib, "ws2_32.lib")

#include <Windows.h>

using namespace std;




void __cdecl xorEncryptBytes(unsigned char bytesToEncrypt[], unsigned int byteBuffer[], unsigned int 
arrayLength, unsigned int encryptionKey, int shift) {

for (int _countNumber = (0); _countNumber <= (arrayLength); _countNumber++) {

    byteBuffer[_countNumber] = (bytesToEncrypt[_countNumber]);
};

for (unsigned int _countNumber = (0); _countNumber <= (arrayLength); _countNumber++) {

    byteBuffer[_countNumber] ^= (encryptionKey);
    byteBuffer[_countNumber] <<= (shift);
};

    return;
};
unsigned char* __cdecl xorDecryptBytes(unsigned int bytesToEncrypt[], unsigned char charBuffer[], 
unsigned int arrayLength, unsigned int encryptionKey, int shift) {

for (unsigned int _countNumber = (0); _countNumber <= (arrayLength); _countNumber++) {

    bytesToEncrypt[_countNumber] >>= (shift);
    bytesToEncrypt[_countNumber] ^= (encryptionKey);
};

for (unsigned int _countNumber = (0); _countNumber <= (arrayLength); _countNumber++) {

    charBuffer[_countNumber] = (bytesToEncrypt[_countNumber]);
};

    return (charBuffer);
};




int __cdecl main(void) {

unsigned char bytes[5] = ("sup?");
unsigned int byteBuffer[4096];
unsigned char charBuffer[4096];


xorEncryptBytes(bytes, byteBuffer, 5, 1, 2);


//-- How would I send the bytebuffer through?




std::cin.get();
return (0);
};

Я знаю, что это плохо, просто терпите меня.

РЕДАКТИРОВАТЬ: я придумал решение, которое заключается в использовании функции сдвига по битам для переноса бит при смене, что устраняет необходимость в большем типе данных, спасибо за вашу помощь!

...