2013-01-09 1 views
2

:암호화 HMAC 결과보다 C에서 짧은 때로는 C-코드 및 암호화 그래서 난 hmac256 또는 sha2_hmac 구현의 내 C-코드 구현에 문제가 구현해야 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# 코드와 비교해 보면 너무 짧습니다.

+1

가 예상 출력 실제 출력 및 C# 코드를 게시하시기 바랍니다. –

+0

퀴즈 질문 :'sprintf (result, "% X", output [j]);는'output [j]'<16이면 원하는 결과를 주겠습니까? 그렇지 않다면 형식 문자열을 변경하기 위해 무엇을 변경할 수 있습니까? – glglgl

+0

미안하지만 ... 결과가 너무 짧지 않았습니다. –

답변

2

는이처럼 sprintf() 함수 호출을 조정해야 :

sprintf(result, "%02X", output[j]);