padding with PKCS7 [C]



我想用PKCS7做填充:

char *test1 = "azertyuiopqsdfgh";
char *test2 = malloc(32*sizeof(char));
memcpy(test2, test1, strlen(test1));
char pad = (char)(32-strlen(test1));
printf("pad = %dn", pad);
for(int i = strlen(test1) ; i < 32 ; i++) {
    test2[i] = pad;
}
for (int i = 0 ; i < 32 ; i++)
    printf("%x ", test2[i]);
printf("n");

我得到:

pad = 16
61 7a 65 72 74 79 75 69 6f 70 71 73 64 66 67 68 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10

但是我想:

pad = 16
61 7a 65 72 74 79 75 69 6f 70 71 73 64 66 67 68 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16

如何修改我的代码?

With

printf("%x ", test2[i]);

以十六进制(%x)打印,而使用

printf("pad = %dn", pad);` you are printing in decimal (%d). 

(十进制)16 =>(十六进制)10,所以你是显示正确的东西

你可以稍微调整一下你的打印显示16而不是10,但我不认为这是你要搜索的

最新更新