Шифрование hmac результат короче в C, чем C#

Иногда необходимо осуществить C-код и Шифрование, таким образом, у меня есть проблема с моей C-реализацией-кода hmac256 или sha2_hmac Внедрением:

unsigned char key[19] = { "abcdef" };
size_t keylen = 18;
unsigned char input[64] = {"123456789"}; 
size_t ilen = 63;         
unsigned char output[32];
int is224 = 0;


sha2_hmac(key, keylen, input, ilen, output, is224);

char result[64] = {};
char result2[64] = {};

for(int j = 0; j < 32; j++) {
        sprintf(result, "%X", output[j]);
        strcat(result2, result);
}

Но результат слишком короток, когда я сравниваю его с Кодексом C#.

2
nl ja de
Пожалуйста, объявите об ожидаемой продукции, фактической продукции и коде C#.
добавлено автор Robert Harvey, источник
Вопрос о викторине: Действительно sprintf (результат, "%X", производить [j]); дают желаемый результат, если произвел [j] <16? В противном случае, что могло быть изменено на строке формата, чтобы достигнуть его?
добавлено автор glglgl, источник
жаль не понимают..., что результат был слишком короток не слишком долго
добавлено автор Thomas Karl Reis, источник

1 ответы

Необходимо приспособить ваш sprintf() вызов функции как это:

sprintf(result, "%02X", output[j]);
2
добавлено