我有一个char数组,我想每16个字节分割一次。在C中如何完成?目的是用其他东西替换16个字节中的每个字节。
我已经实现了替换功能,所以我只需要每16个字节使用一次。 用伪代码:
void sub(unsigned char* s){
for (int i = 0; i < 16; i++)
{
state[i] = S[state[i]]; //S[] is a char array (S-Box). which consists of the values state needs to be substituted with.
}
}
int main(void){
char message[] = "This is the message I want to encrypt!"
for every 16 bytes {
sub(message);
}
}
答案 0 :(得分:0)
一个例子是
#include <stdio.h>
#include <stdlib.h>
void sub(char *array, size_t size, char target_char)
{
size_t num_segments = size / 16;
for(size_t i=0; i<num_segments; ++i)
{
array[15 + i * 16] = target_char;
}
}
int main(int argc, char** argv)
{
if (argc != 3)
{
printf("need 3 args\n");
exit(1);
}
size_t size;
char *array = argv[1];
printf("original char array: %s\n", array);
sscanf(argv[2], "%zu", &size);
sub(argv[1], size, 'x');
printf("new char array: %s\n", array);
return 0;
}