C 将整数数组转换为用于AES加密的无符号字符数组

C 将整数数组转换为用于AES加密的无符号字符数组,c,aes,bit,unsigned-char,C,Aes,Bit,Unsigned Char,我得到一个数组 int key[128] = {1,0,1,0,0,1, .........., 0,1,0} 我想将此数组转换为 unsigned char key1[16] = {0x__,0x__,...,0x__} 例如,如果 from key[0] to key[7] is 10100011, then key1[0] = 0xa3 我需要将此新数组用于AES加密这假设lsb是密钥[0],而msb是密钥[7] int key[128] = {1,0,1,0,0,1, .....

我得到一个数组

int key[128] = {1,0,1,0,0,1, .........., 0,1,0}
我想将此数组转换为

unsigned char key1[16] = {0x__,0x__,...,0x__} 
例如,如果

from key[0] to key[7] is 10100011, then key1[0] = 0xa3
我需要将此新数组用于AES加密这假设lsb是
密钥[0]
,而msb是
密钥[7]

int key[128] = {1,0,1,0,0,1, .........., 0,1,0}
unsigned char key1[16];

int (* better_key)[8] = (int (*)[8])key;

int i;
int j;

for (i=0;i<sizeof(key1); i++){
     key1[i]=0;
     for(j=0;j<8;j++){
       key1[i]|=better_key[i][j]<<j;
     }
}
int key[128]={1,0,1,0,0,1,…,0,1,0}
无符号字符键1[16];
int(*更好的_键)[8]=(int(*)键[8]);
int i;
int j;

对于(i=0;i遍历
键[]
的每个元素,将其位位置值添加(或“ing”)到
键1[]
的相应元素

#define N 128
#define B8 8

int key[N] = {1,0,1,0,0,1, .........., 0,1,0}
unsigned char key1[N/B8] = { 0 };

for (unsigned i = 0; i<N; i++) {
  key1[i/B8] |= key[i] << (B8 - 1 - (i%B8));
}
#定义N 128
#定义B8
int key[N]={1,0,1,0,0,1,…,0,1,0}
无符号字符key1[N/B8]={0};

对于(unsigned i=0;iIf您需要一个固定的位宽度,请使用
stdint.h
中的固定宽度类型。Test还提供一个定义的有符号整数表示。据我所知,您正在询问如何将整数1和0的数组转换为字节数组,这与加密无关。