это pbox, он потребует от вас сделать неповторяющийся целочисленный ключ - случайный - такого же размера, что и указанный блок.последний блок будет начинаться со смещения, которое может быть просто случайными данными.Не распространяется на нулевые терминаторы, поэтому решите, куда направляются данные / что вы делаете с ними.Вы могли бы realloc (бафф, "A") использовать memmove.сделайте 3 64-битных блока и подмножество 16 4-битных блоков из выходных данных 64, и это начинает выглядеть как плохая реализация des, встроенная в него openssl.Основным преимуществом является возможность шифрования / дешифрования с помощью одной и той же функции / адресного пространства.Это также может позволить вам шифровать на месте без дополнительного буфера.KSZ - это длина вашего блока (ов) / ключа
char
*zecr
(bff, zbf, ky, ze)
char *bff;
char *zbf;
unsigned int ky[];
short ze;
{
/* main encrypt decrypt function */
int i=0;
while( i < KSZ ) {
int dx = ky[i];
if( ze == 1 ) { // encrypt
char c = bff[dx];
sprintf(zbf + i, "%c", c);
} else { // decrypt
char c = bff[i];
char tk[1] = "";
sprintf(tk, "%c", c);
memmove(zbf +dx, tk, 1);
}
i++;
}
return zbf;
}
. Xoring - это бинарная операция, которая даст совершенно разные результаты в зависимости от того, как вы ее разыграли.Вы получили правильную идею, используя ocdec, но если идея состоит в том, чтобы упростить ее, я собираюсь предположить, что вы на самом деле не знаете сборку, несмотря на запрошенную ссылку, придерживайтесь вызовов c, это проще для того, как вы, скорее всего, будете использовать данные.
- женский оргазм, это миф.-SUN TZU