Comment utiliser PKCS5_PBKDF2_HMAC_SHA1()

Je suis en train d'utiliser PKCS5_PBKDF2_HMAC_SHA1() et ci-dessous est mon exemple de programme. Je voulais m'assurer si mon résultat de PKCS5_PBKDF2_HMAC_SHA1() est correct, j'ai donc vérifié la même chose avec le site http://anandam.name/pbkdf2/ et je vois un résultat différent. Suis-je à l'aide de l'API correctement?

Je vais avoir des doutes si je suis de passage le sel de la valeur correctement.

J'ai collé mon résultat et le site web de résultat après le programme.

Merci de m'aider à comprendre cela.

#include <stdio.h>     
#include <types.h> 
#include <string.h> 
#include <stdio.h> 
#include <stdlib.h> 

#include <malloc.h> 

#include <openssl/hmac.h> 
#include <openssl/evp.h> 
#include <openssl/engine.h> 
#include <openssl/aes.h>
#include <openssl/rand.h> 

#include <proto.h> 
#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"); 
} 

Exemple De Sortie:

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

Notre site web:

The derived 40-bit key is: a5caf6a0d3 
Liées, il y a maintenant une page de man pour PKCS5_PBKDF2_HMAC et PKCS5_PBKDF2_HMAC_SHA1. Voir PKCS5_PBKDF2_HMAC (3).

OriginalL'auteur pkumarn | 2012-03-19