Как использовать PKCS5_PBKDF2_HMAC_SHA1()

Я пытаюсь использовать PKCS5_PBKDF2_HMAC_SHA1(), и ниже мой пример программы. Я хотел убедиться, что мой результат PKCS5_PBKDF2_HMAC_SHA1()верен, поэтому я проверил то же самое на веб-сайте http://anandam.name/pbkdf2/и вижу другой результат. . Правильно ли я использую API?

У меня есть сомнения, правильно ли я передаю значение соли.

Я вставил свой результат и результат веб-сайта после программы.

Пожалуйста, помогите мне понять это.

#include      
#include  
#include  
#include  
#include  

#include  

#include  
#include  
#include  
#include 
#include  

#include  
#define KEY_LEN    32// 32 bytes - 256 bits 
#define KEK_KEY_LEN   5 
#define ITERATION   1000 

unsigned char salt_value[KEY_LEN]; 
unsigned char AESkey[KEY_LEN]; 
unsigned char XTSkey[KEY_LEN]; 
u8 fuse_key[KEY_LEN]; 

void main() 
{ 
    s32 i=0; 
    s32 len =0; 
    u8 *out; 
    u8 *rspHMAC; 
    const s8 pwd[] = "test"; 
    s8 rspPKCS5[KEK_KEY_LEN * 2]; 
    s32 ret; 

    rspHMAC = (unsigned char *) malloc(sizeof(char) * KEY_LEN); 
    out = (unsigned char *) malloc(sizeof(char) * KEK_KEY_LEN); 

    RAND_bytes(salt_value, KEY_LEN); 

    printf("\n salt_value[0] = %x; salt_value[31]= %x", salt_value[0], salt_value[31]); 
    printf("\n strlen(salt_value) = %d; sizeof(salt_value) = %d\n", strlen(salt_value), sizeof(salt_value));  

    for(i = 0; i < KEY_LEN; i++) { 
        printf("%02x", salt_value[i]); 
    } 

    ret = PKCS5_PBKDF2_HMAC_SHA1(pwd, strlen(pwd), salt_value, strlen(salt_value), ITERATION, KEK_KEY_LEN, out); 
    printf("\n PKCS#5 :"); 

    for(len = 0; len < KEK_KEY_LEN; len++){ 
        printf("%02x", out[len]);

        sprintf(&rspPKCS5[len * 2], "%02x", out[len]); 
    } 

    printf("\n"); 
} 

Пример вывода:

salt_value[0] = e2; salt_value[31]= 12 
strlen(salt_value) = 32; sizeof(salt_value) = 32 
e258017933f3e629a4166cece78f3162a3b0b7edb2e94c93d76fe6c38198ea12 
PKCS#5 :7d7ec9f411 

Результат веб-сайта:

The derived 40-bit key is: a5caf6a0d3 

12
задан jww 7 June 2015 в 12:21
поделиться