2

Cコードと暗号化を実装する必要がある場合があるため、hmac256またはsha2_hmac実装のCコード実装に問題があります。

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# コードと比較すると、結果が短すぎます。

4

1 に答える 1

2

sprintf()次のように関数呼び出しを調整する必要があります。

sprintf(result, "%02X", output[j]);
于 2013-01-09T14:40:06.333 に答える