0
Я хочу сделать отступы с pkcs7:обивка с pkcs7 [C]
char *test1 = "azertyuiopqsdfgh";
char *test2 = malloc(32*sizeof(char));
memcpy(test2, test1, strlen(test1));
char pad = (char)(32-strlen(test1));
printf("pad = %d\n", 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
Как я могу изменить код?
Заранее спасибо.
Спасибо. Итак, с PKCS7 я должен выполнить десятичное значение 16 (= 10 (гекса)), а не значение шестнадцатеричной 16 (= 22 (десятичная)), правильно? –
@ user1517752 Да, точно. значение пэда должно представлять собой длину (которая когда-либо используется) для заполнения. Для меня вы делаете все правильно! – yco
@ user1517752 Будьте осторожны, хотя с использованием strlen в криптографических средах – yco